也是醉了,从 pip 学习到 pipenv,再切换到 poetry,最后还是用回 pip

362 天前
 pl01665077

也是醉了,最近使用 docker+poetry 1.5.1 部署一个项目,dockerfile 模板之前一直正常,最近推送代码到部署环境,发现 docker build 居然失败。一查发现怎么缺少了依赖库?平时使用 poetry 安装不都是自动装依赖库的吗?

去 github issue 一查,发现这个问题才明白,poetry 的依赖崩了。。。导致重新创建新的环境的时候,再使用 poetry 创建环境就出现安装依赖错误。。。

解决方案是要锁定 pkginfo 版本

poetry self add pkginfo==1.10.0

但是改了好几次 dockerfile 还是不行,最后还是导出 requirements.txt ,用 pip 方式安装,改写 dockerfile 后终于部署正常了。。。

以前受过 pipenv 的教训,它过了一段时间再安装,会出可能启动不了项目,是由于 pipenv 没有完全锁死依赖库版本。现在本来以为 poetry 包管理器足够稳定,可以一直安心用不加班,没想到现在又要重新更好一点的包管理器,或者用回 pip

9576 次点击
所在节点    Python
91 条回复
samzong
361 天前
@SimonOne #78 补充下我的理解,rye 目前比 uv 多了一个系统 python 版本管理的能力,类似 pyenv ; uv 会 find 你系统安装的多个版本的 python ,比如 brew install, pyenv install, rye install ,然后根据你的需求指向对应的版本。

使用之后发现,brew install python python@3.11 python@3.10.5 + uv 就很方便了。目前我也不在使用 pyenv 和 rye 了。

而且最近 uv 增加了很多 rye 的功能,那么最终 uv 貌似会往代替 rye 的方向发展 ??? maybe , 一点见解。
lonelyparasol
359 天前
@itskingname 3.12 版本不少库还没适配吧
twig
347 天前
@Numbcoder 越用 Python 越短
purplemystic
328 天前
@chopin1998519 现在用 uv, 配置 cuda 环境很不美丽, 太大了, cuda 环境还是用的 docker
purplemystic
328 天前
@dcoder #74 rye 会逐步被 uv 替代, 这也是官方的路线
purplemystic
328 天前
@stobacco 第一次被恶心到, 还是 pipenv, 那个每次不知道等待多久的 locking
chopin1998519
327 天前
@purplemystic #84 不会啊。。。。我就是因为 cuda/torch 这个转过来的。。。docker 。。。。我更不喜欢
purplemystic
320 天前
@chopin1998519 #87 主要是 cuda, torch 之类的库太大了, 如果每次创建一个虚拟环境, 就下载编译一遍, 就好心累
chopin1998519
319 天前
@purplemystic #88 uv 会用硬链接、符号链接、cow 等等 共享相同的版本呀, 所以实际就一份,upgrade 了另说
hellomacos
304 天前
poetry 要是遇到需要同一个依赖,但是需要的版本的不同,那是真的坑。人都傻了
sonforest
108 天前
@Mithril 看不起我 composer 吗?绝对有办法让你抓狂

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1075372

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX