有没有好用的 Python 版本、虚拟环境和包管理的工具

356 天前
 hu6u
感觉 conda 不太好用,随便创建一个环境都比较大(个人感觉
6055 次点击
所在节点    Python
67 条回复
LaureatePoet
354 天前
poetry
HiddenNPC
354 天前
专业和非专业都推荐:miniconda
frostming
353 天前
请大家不要再问「有没有好用的 Python 版本、虚拟环境和包管理的工具」这种问题了。这里出现一百个答案,题主还知道要用什么吗?而且题目明明拉黑 conda 了,下面还一堆 conda 的。

要提问,请先明确使用场景。你是做 ML 开发多,还是 web 开发多,还是爬虫?
没有哪一个包管理器是银弹。你闭着眼睛推荐一个,他一用不符合场景,回头还得骂一声垃圾。
ifsclimbing
351 天前
asdf + pdm
ZX576
347 天前
@Nugine0

docker + poetry

- 预先多做一些不同 python 版本的 base image ,甚至一些基础共有包也打进去,解决 1/2/3
- 使用 poetry 做版本管理,解决 4/5/6/8

总的来说指定的项目中可能包含多个不同的 docker file ,一份 pyproject.toml 和 poetry.lock 文件

不太懂 7 的意思。
frostming
347 天前
@Nugine0 你说这些 PDM 都支持啊,有什么问题?
akaHenry
254 天前
推荐 rye 吧. 也是前 flask 作者出品.

https://github.com/astral-sh/rye


1. 目前 应该是唯一良好支持 workspace 模式的(类似 rust cargo), 比较方便管理 monorepo.

2. 功能已经覆盖 poetry + pdm + pyenv. (这样可以完全替代 pyenv + poetry)

3. 集成 uv(替代 pip), 安装包速度更快.


成熟可靠方案: pyenv + poetry + 全局 venv 模式.

1. 过去长期使用 pyenv + poetry. 比较偏好 pyenv 的全局管理的 venv. 不过 rye 的 local venv + workspace, 就很棒, 完美规避 venv 管理的麻烦. (没有 workspace, local venv 很难管理)


不推荐: pdm

1. pdm. 短暂使用, 就弃用. 有不少 bug. 和 pyenv 协调性很差, 终端自动激活 venv, 始终有 bug.

2. 功能完备度低于 poetry, 目前更是不如 rye. (题外: 就算不用 rye, 我也不会用 pdm, 那么多人吹, 我的体验就很差)

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

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

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

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

© 2021 V2EX