|  |      1learningman      2022-02-01 13:17:59 +08:00  1 推荐 poetry poetry publish --build 就走了 | 
|  |      2ClericPy      2022-02-01 13:25:53 +08:00  2 除了楼上的, 貌似还有 flit, 被官方招安了 | 
|      3orange      2022-02-01 13:42:28 +08:00 关注 | 
|      4aloxaf      2022-02-01 15:26:13 +08:00 来用 pdm | 
|  |      5awsl2333      2022-02-01 15:30:09 +08:00 docker 使用者表示万物皆可 docker, 一个 requirements.txt 就够了 | 
|  |      7learningman      2022-02-01 15:54:24 +08:00 @liuhai233 #5 alpine 装带 C 库的包容易炸,slim 就 300m 了。。。 | 
|      8SuperMild      2022-02-01 17:16:59 +08:00  1 看过 poetry 和 flit ,因为表面上看来 flit 比较简单我就选择了 flit ,使用过程中总的来说比较顺利。 | 
|  |      94BVL25L90W260T9U      2022-02-01 17:32:07 +08:00 pipenv 强烈不推荐。我以前是比较推荐的 poetry 的,但是遇到 bug 太多了,而且 resolve 起来特别慢。现在看起来 flit 应该是不错的。 | 
|      10sch1111878      2022-02-01 19:48:28 +08:00 @ospider pipenv 直接接触感觉还是很不错的, 和 npm cocoapods 有相似之处, 请问不推荐的原因是什么? | 
|  |      11matrix67      2022-02-01 20:30:16 +08:00  1 @sch1111878 #10  python 包版本吃瓜 1. 没法单独更新包 2. 代码未动,文档( PR )先行 3. 卸载包更新 4. I have no idea. 5. 伪装官方 6. 喜欢烂尾 7. 速度慢 Lock 时间长 8. 对项目发展没有信心 9. Poetry?也不行 10. 没有任何官方和核心开发者支持 11. 未处理的 Issue/PR 太多 情报来源: https://v2ex.com/t/777916 https://www.zhihu.com/question/322932995/answer/672812417 | 
|      12mekingname      2022-02-01 21:17:08 +08:00  1 Poetry 有一个很严重的问题,就是它的依赖在不同的系统会冲突。 例如,你使用 macOS 开发,通过 poetry add uvicorn 安装了这个包。 然后你到 Linux 系统上部署,如果你带上了 macOS 上面生成的.lock 文件,那么你执行 poetry install 安装以后,运行就会报错,因为它安装的这个版本是 macOS 的版本,在 Linux 上不能用。你必须先删除.lock 文件,再 poetry install 才能使用。 @learningman | 
|      13neoblackcap      2022-02-01 21:19:56 +08:00 如果你目标平台是 Debian 系的 Linux 发行版,那么请使用 dh-virtualenv 工具构建一个 deb 包作为构建产物。 此方法是我认为相对较好的了。同理 Redhat 系的也可以去寻找相类似的工具,原理还是构建一个目标平台的包。 这种方法的优势在于, 1. 可以完全在构建机器上完成构建。 2. 对系统依赖极低,基本上只依赖 CPython 解析器,同时如果依赖第三方库,可以通过发行版的包管理器解决。 3. 打包的产物基本上就是你要部署的文件,一般情况下可以做到比 Docker 镜像更小 4. 可以编写 Systemd/init.d 脚本,部署的时候一并部署了,完全做到通过系统命令来管理程序生命周期( start/stop/restart) 5. 可以更加容易地部署静态资源文件,而不用考虑资源文件在项目中的组织或者所在相对目录 | 
|  |      14learningman      2022-02-01 21:28:05 +08:00 @mekingname #12 没遇到过这个问题。。。至少对我而言,Windows 的项目在 Linux 运行正常 | 
|      15arischow      2022-02-01 22:05:51 +08:00 @mekingname #12 这个我感觉不太可能吧…… | 
|      16ispinfx      2022-02-01 23:09:30 +08:00 via iPhone @mekingname poetry 不就是用来解决这些问题的吗…怎么可能…没遇到过… | 
|  |      17felixcode      2022-02-02 04:32:26 +08:00 via Android @mekingname  是不是碰到 x86 和 arm 的问题了 | 
|  |      18ericgui      2022-02-02 08:08:00 +08:00  1 pip 有什么问题吗 | 
|  |      19Macv1994      2022-02-02 11:45:00 +08:00 via Android 我还是原始的 pip🐶 | 
|  |      20awsl2333      2022-02-02 20:25:21 +08:00 via iPhone @learningman 确实,前司 python 项目镜像装完依赖 2GB | 
|  |      21Vegetable      2022-02-03 00:01:29 +08:00 当下我简单调研发现只有 poetry 一个选择比较好。resolve 有时候确实比较慢,注意选择合适的源。 flit 并没有用过,简单看一下好像是聚焦在打包发布方面的。但是 poetry 不是。 pipenv...用过,体验很差。 不也包管理只管理 requirements 不是不行,但是这样还要手动维护虚拟环境,麻烦。 我使用 poetry 管理的唯一痛点就是,没有一个 js 的 husky 这种分发 githook 的工具。 不过这不算 poetry 的问题 | 
|  |      22maniaccn      2022-02-04 18:21:36 +08:00 包管理器不知道,但是分发的话,docker 最省事 | 
|  |      23frostming      2022-02-07 20:18:54 +08:00 @Vegetable  我使用 poetry 管理的唯一痛点就是,没有一个 js 的 husky 这种分发 githook 的工具。 不过这不算 poetry 的问题 Python 里对应的是 pre-commit ,但在 githook 上跑很重的任务( husky, pre-commit )这种是不是好的实践都是有争议的 | 
|  |      24frostming      2022-02-07 20:30:26 +08:00 看来 PDM 的普及程度还是不行,大家都不知道呢。如果用 Poetry 有什么不能忍的事情,不妨试试。 | 
|      25dcoder      2022-03-16 07:27:24 +08:00 @frostming PDM 有没有跟 PyCharm 集成的计划? Poetry 现在被 PyCharm 支持了, PyCharm 新建项目会在其 Terminal 里自动设置好虚拟环境 | 
|  |      26frostming      2022-03-16 11:45:06 +08:00  1 | 
|      27sch1111878      2022-04-11 21:35:00 +08:00 @matrix67 感谢回复 |