为什么 Python 的包管理这么难用,比 node 的 npm 难用一万倍,每次进入项目都要手动执行一下 conda activate xxx,难道就没有默认的 Python 项目级别的依赖吗?

查看 512|回复 68
kneo   
python 和 node ,人称依赖管理界的卧龙凤雏。现在 node 说我的 npm 比你好用一万倍,说完自己都笑了。
liu938651469   
pyenv 任意 py 版本 再和 uv 配合好了
est   
与其说是 py 的包管理烂,不如说 py 是 C 库的附庸。
py 的所有包管理机制烂的根源就是 .so .dll 不好管理导致的。还有一些逆天玩意是源码分发,你就可劲儿折腾吧。
你觉得 npm 好用,那是因为手没伸到这么长而已。纯 .js 包有啥好管理的。
litchinn   
npm 感觉半斤八两,工具越多的一般越难用,典型的如 pip 和 npm ,人们分别继续开发了 venv ,conda ,yarn ,pnpm...
现在 python 的版本答案是 uv
感觉包管理最好的就是 cargo 了
viking602   
建议使用 uv
jsq2627   
@kneo pnpm 已经把 npm 的不足都修正了。现在 pnpm/npm 的问题是,js 生态碎片化,很多简单的功能都要发 npm 包,导致一个项目有成千上万依赖。
suaxi   
conda 我是一个项目一个 env ,就首次安装的时候 active 一下,也还行
1daydayde   
#9 可以满足临时的小脚本项目
,如果你依赖多,那么可以用 uv 来管理,在初始化项目的时候安装速度不比 npm 快一万倍?
huijiewei   
别提 npm 了,被攻击的生活不能自理了都
wu67   
venv 呀...以我自己玩的 fastapi 为例
python3 -m venv venv
Makefile 里面写好:
VENV_ACTIVATE = . venv/bin/activate
dev:
写个 tab 在这$(VENV_ACTIVATE) && uvicorn main:app --reload --host 0.0.0.0 --port=3000
然后手动写好 requirements.txt, 执行:
pip install -r requirements.txt
启动的时候跑 make dev 就行了, ctrl c 终结命令的时候, 会自动退出虚拟环境
您需要登录后才可以回帖 登录 | 立即注册

返回顶部