从开始学 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 一定要注意他们的缓存,空间不够很可能爆目录目录..., 本人也还在摸索和在实际工作中使用,才学疏浅,大佬们指正
补充一点,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