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

2023-12-04 11:00:18 +08:00
 hu6u
感觉 conda 不太好用,随便创建一个环境都比较大(个人感觉
6700 次点击
所在节点    Python
67 条回复
noqwerty
2023-12-04 15:05:34 +08:00
试下来最简单的就是 micromamba 了
anubu
2023-12-04 15:16:00 +08:00
不嫌重的话,开发环境按项目配置 devcontainer ,配合 vscode 也能实现挺不错的工作区。
NoOneNoBody
2023-12-04 15:52:59 +08:00
我 miniconda 设了 4 个环境就 24G 了,只要装机器学习、深度学习的东西,空间小不了
本想找共享 package 的方案,发现需要学习很多知识,反正空间也够,就懒得去研究了
raycool
2023-12-04 15:54:23 +08:00
我用 miniconda
pljhonglu
2023-12-04 16:13:26 +08:00
rtx 做版本管理,poetry 依赖管理

https://github.com/jdx/rtx
forQ
2023-12-04 16:21:54 +08:00
linux:pyenv
windows:pyenv-win
dif
2023-12-04 16:38:46 +08:00
目前用 miniconda 。
founddev
2023-12-04 17:14:43 +08:00
miniconda yyds
HOMO114514
2023-12-04 17:17:25 +08:00
only conda
lululau
2023-12-04 17:17:47 +08:00
我特想知道为什么 pip 不能像 rubygems 一样在全局安装同一个包的不同版本?虚拟环境可以有,但是不要把包拷来拷去的好不好
kiddingU
2023-12-04 17:29:13 +08:00
conda
ericguo
2023-12-04 17:33:27 +08:00
@lululau 无法安装的同一个包的不同版本,不过可以每次切项目覆盖。
Nugine0
2023-12-04 17:40:31 +08:00
写几个基本需求,看看有没有人能给出方案。我以前的调查结论是没一个能打的。

1. 快速切换不同版本的 Python 解释器,方便升级或降级
2. 每个项目一个虚拟环境,互不干扰
3. 同一个包的相同版本共享一份全局空间,不要把每个项目都塞爆
4. 同一个包的 cpu 和 gpu 版本在不同虚拟环境互不干扰,例如项目 A 装 cpu 版,项目 B 装 gpu 版
5. 依赖兼容性检验,如果新装一个包会破坏环境,默认拒绝安装,可以选择强制安装
6. lock 文件独立于操作系统,例如在 windows 上生成的锁文件到 linux 上安装后不变
7. 支持安装自有索引的包,例如 PyTorch
8. 默认锁定兼容版本,而不是 xxx = "*"
coolair
2023-12-04 18:11:14 +08:00
实话实说,没有一个好用的!
vialon17
2023-12-04 18:29:30 +08:00
直接手动:
默认安装一个全局 py ,
其他 py 安装路径内改 python 执行文件名称就行了,pip 直接在文件夹内执行;
或者直接 venv 。
fakepoet
2023-12-04 18:38:14 +08:00
pyenv + pyenv-virtualenv
917405917
2023-12-04 20:06:00 +08:00
Poetry
thevita
2023-12-04 20:19:46 +08:00
@fakepoet

同 pyenv + pyenv-virtualenv ,
支持多种 venv 后端(具体是哪做的我也不是很清楚), venv, virtualenv, conda 都支持
也能 用 python-build 安装 和管理 standalone 的 python

就能实现各种环境都在一起管理了

大部分机遇 几个 python3.x base ,派生一堆 venv

ai 的场景就 用 anaconda/miniconda 作为 base, conda 作为 venv 后端 管理具体的 ai venv
IgniteWhite
2023-12-04 21:05:59 +08:00
pyenv + pyenv-virtualenv

然后配置好终端模拟器和代码编辑器/IDE 对于 pyenv 虚拟环境的支持
hertzry
2023-12-04 22:16:38 +08:00
conda create -n your_env_name 就是一个空环境啊,里面什么也没有,怎么会大呢?

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

https://tanronggui.xyz/t/997412

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

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

© 2021 V2EX