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

3 天前
 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

4889 次点击
所在节点    Python
82 条回复
yolee599
3 天前
python -m venv you_path
不就行了?
darksword21
3 天前
能过部署能 pip 最好直接 pip

conda 也是废物,经常无法 activate ,我在 sagemaker 上部署如果是 conda 的还导致没有日志

哎 python ,心累
houzhiqiang
3 天前
目前在用 pdm ,没有遇到什么问题。pdm 运行慢我是无所谓
alexsz
3 天前
用 docker 部署时我都不用 venv
phithon
3 天前
PEP 668 以后,不用 virtualenv 以后默认不让 pip 装依赖了
lxdlam
3 天前
最近两年都在用 rye ,切到 uv 之后体验丝滑
lxdlam
3 天前
@lxdlam 记忆有偏差,最近一年应该
GeekGao
3 天前
@Numbcoder 说这话的时候,还没有 go 、rust 什么事儿呢。抛开历史看问题你是会的。
coolair
3 天前
用 uv ,一步到位。
pckillers
3 天前
都用 docker 了,自然直接 pip 全局安装啦。做好 image 版本备份,连 venv 都用不到。
GeekGao
3 天前
从 09 年开始就用 pip ,用了十多年了,没啥问题啊。 哈哈哈哈。操作姿势很重要。当然 Windows 平台除外。
siteshen
3 天前
以前用 pipenv 的,不过 pipenv 的依赖自动更新很讨厌。现在用 pipenv (不要 pip) + pip 。

生产环境用 pip install -r requirments.txt
开发环境用 pipenv shell; # update pypi mirror; pip install -r requirments.txt
youngce
3 天前
venv + requirments.txt 。。。
noqwerty
3 天前
micromamba/uv 目前为止没遇到解决不了的
NoOneNoBody
3 天前
一个包 A 存在依赖 B ,用这个 A 去管理其他的,这本来就是个危险的事,除非能保证 AB 同步
包 A 没有依赖,或者说仅依赖原生,才是相对安全的选择

框架也是类似逻辑,生活中很多事也是这个逻辑,依赖的东西应该仅限于方便行动,而不是方便掌控
txx
3 天前
@dcoder AI 的东西直接上 nvidia 的 pytorch 的 docker ,cuda 什么的都配好了,开箱即用。
ClericPy
3 天前
除了现在的 uv ,其他的全用了一遍,有的在生产环境遇到 bug (虽然提了以后作者修了),最后还是 venv 就够了。。。
至于发包,打包成 zipapp 也不耽误,执行环境还是 venv 省事
Vegetable
3 天前
哪有在容器里边再构建虚拟环境得道理? poetry export 为 requirements.txt ,然后容器里直接 pip 才对。

poetry 最大的问题是慢,不过我也早就跑路到 rye 了
so1n
3 天前
poetry,pdm 都是本地用啊,线上还是导出 requirements 把
xixibb
3 天前
@jiayouzl #6 我新手,觉得 pip+自带的 venv 也蛮好用的。。。

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

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

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

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

© 2021 V2EX