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

查看 514|回复 68
YanSeven   
uv 随着大模型的兴起应该算是主流方案了?
treblex   
UV 有本地梯子还行,上服务器更麻烦了,哎
Aprdec   
..venv 不也得激活环境吗 楼上和 conda 有啥区别 楼主不就是嫌麻烦吗
longredzzz   
给项目配一下 direnv 实现 shell 自动激活环境。
python 环境管理我用 pixi,能管理 conda 包 和 pypi 包
craftsmanship   
UV 你值得拥有
skuuhui   
自从用 AI 编程,从来没有在命令行输入过 python 相关命令了
reoah2   
windows 下 vscode 打开 terminal 会自动执行:./venv/Scripts/Activate.ps1 ,一进 terminal 就是虚拟环境了,这很好用啊
wuruxu   
apt-get 想要什么包都有
coreJK   
从开始学 python 使用自带的 venv 到现在
pyenv ,pix ,pdm ,uv 都用过了,分享一点点心得吧
半自动
1. pyenv: 管理多版本的 python 环境好手,windows 和 ubuntu 中都可以实现方便的多版本切换,但是要注意和其他修改环境变量的程序(比如 ros 机器人开发框架),但是也得科学上网的情况下用,不然容易卡在下载 python 安装包的时候
2. pipx:  这个可以理解是,用来管理用 python 开发和发布的一些工具管理,比如 labelme ,youtube dowload 这类工具,可以独立成一个系统工具(其实还是建立了一个虚拟环境,然后再在这个独立的环境安装了工具,避免污染系统的 pip 环境依赖)
往“全自动”方向发展
3.pdm: 在他之前还有一个 poetry ,能够管 python 一整个开发周期(版本管理、环境管理、依赖管理、打包 whl 分发),pdm 有一点比 uv 方便,他管理的依赖可以跨平台,在写 pyqt 的时候,loguru 模块在 win 和 linux 环境下会到一个 win32ctime 模块,pdm 默默的做了模块区分系统环境的事情,帮我节省了很多(我尝试用 uv 重新管理这个项目,结果出现了模块依赖的问题,uv 好像也有区分的办法,需要自己编写目前,我用得还不熟 XD )
4.uv: 非常快,做的事情和 pdm 、poetry 差不多,也是为了能够管理整个开发周期,还可以做 pipx 做的事情,管理一些开发工具
pdm 、和 uv 一定要注意他们的缓存,空间不够很可能爆目录目录...,
本人也还在摸索和在实际工作中使用,才学疏浅,大佬们指正
coreJK   
补充一点,pdm 和 uv 都可以针对特殊的 pytorch 类的包(包括但不限于),专门分配对应的 index
版主应该最容易遇到的是这个问题,和 pytorch 有关的,现在可以参考这两个工具的方案
1. uv 的方案:https://uv.oaix.tech/guides/integration/pytorch/?h=pytorch
2. pdm 的方案: https://pdm-project.org/zh-cn/latest/usage/config/#_5
您需要登录后才可以回帖 登录 | 立即注册

返回顶部