也是醉了,最近使用 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

是的 ,全他么是垃圾

go.mod / Rust cargo:我不是针对你 poetry, 我是说在座的各位 python 包管理, 都是垃圾 ...

认真讨论, Python 的包管理真的太拉胯了...说实话, 最近在考虑, 干脆用 conda + lock 得了 github.com/conda/conda-lock还方便折腾 AI 的东西

还得加上 .NET NuGet/Java MavenNPM:在比烂这方面在座各位没有一个能打的。

npm 和 Python 的包管理感觉烂得各有千秋最近不太用 JS/Node, npm 那个堪比黑洞质量的文件重复问题,貌似优化了不少了?

pip 适合 99.99%开发者!别搞什么花里胡哨的!我以前就用 virtualenv 后来 Python 自带虚拟环境了我连 virtualenv 都不装了.

Python 3.12 开始,pip 安装就会给你报错缺少 Imp 包。

原生 env 一把梭

开发环境 poetry ,部署乖乖用 pip...

python 包管理是真的乱

我都是用自带的 venv ,可能项目比较小。

懒得折腾,都是 conda+pip

pnpm 基本解决 node_modules 的问题了 python 暂时无解

每次看到有人尬吹 “人生苦短,我用 Python” 我就想笑

我用 conda ,感觉很方便啊

确实是垃圾。不要说包管理不重要,太影响体验了。我甚至因为 cargo 的便利,硬学了 rust 。

uv 真快。。。

pdm 也不错

poetry 挺好用的,uv 也不错.

依赖越少越好

python -m venv you_path不就行了?

能过部署能 pip 最好直接 pipconda 也是废物,经常无法 activate ,我在 sagemaker 上部署如果是 conda 的还导致没有日志哎 python ,心累

目前在用 pdm ,没有遇到什么问题。pdm 运行慢我是无所谓

用 docker 部署时我都不用 venv

PEP 668 以后,不用 virtualenv 以后默认不让 pip 装依赖了

最近两年都在用 rye ,切到 uv 之后体验丝滑

记忆有偏差,最近一年应该

说这话的时候,还没有 go 、rust 什么事儿呢。抛开历史看问题你是会的。

用 uv ,一步到位。

都用 docker 了,自然直接 pip 全局安装啦。做好 image 版本备份,连 venv 都用不到。

从 09 年开始就用 pip ,用了十多年了,没啥问题啊。 哈哈哈哈。操作姿势很重要。当然 Windows 平台除外。