我的 Mac 上装了很多 Python 环境,除了 Mac 本身自带的之外,还有 Anaconda 、MiniConda 、Python 官网安装的,以及一大堆历史遗留创建的虚拟环境,也不记得是 venv 还是 pipenv 弄得了。因为以前入门没概念,上手就是 pip install ,结果装到哪里自己都不知道。实际工作中切换或者管理感觉很头疼。想知道有没有什么工具可以做一下自动化的管理或者清理。

Pyenv ── github.com/pyenv/pyenvpyenv 是一个用于管理 Python 版本的工具。它允许你在同一台机器上安装和切换多个 Python 版本,避免了不同项目之间由于 Python 版本不同而产生的冲突。通过 pyenv ,你可以轻松地安装特定的 Python 版本,并为不同的项目设置不同的 Python 版本。

可以看一下这篇文章,推荐了我认为比较合理的 setup laike9m.com/blog/best-python-development-setup-for-2022-and-beyond,144/

用 rye,每个工程一个自己的环境,就像 node 一样

一项目一环境的话 pdm 就挺好的,用起来很像 yarn 或者 npm 。

我现在用 pyenv+poetry ,丝滑

虚拟环境名起和项目名相关不就行了?项目与虚拟环境共存亡...

清理的话,你可以整理一下环境变量(顺便找到当前 python/pip 安装路径),不过根据你装的方式/用的 shell 啥的可能在多个.rc 文件改了 PATH ,管理工具和方法我看别人都说的差不多了

实际上只需要 miniconda 就足够用了吧...

如果使用 pycharm, 用 pycharm 上面的

最优解还是装个 orbstack 启动容器,在容器里安全各种环境,而不是直接在 mac 系统里装。你直接装 mac 系统里清理,迁移,起停都非常难控制

我已经不知道有哪些环境了,随便用。碰到问题再说

用 miniconda,建议建立个测试环境,统一安装在这里,没有必要一个项目一个环境,只有那种大型项目单独建立环境,不然你会发现每搞个项目都是安装一堆重复的包,还占用环境,比如你跑 github 上的项目,就建立个 github 环境,以后 github 上拉的项目就用这个环境,除非 python 版本不匹配再新建立,这种项目你跑过一次你会发现基本不会再运行。

每个项目都运行 python -m venv .,然后执行 bin/pip install ...

我想问下,2024 年了,python 各种工具创建的虚拟环境可以移动了吗,之前的移动后一些库会用不了,还得重新装。

我个人选择用 Homebrew 装 Python 。不喜欢 pyenv ,因为要本地编译。

venv 不可移动似乎主要是因为脚本里面写了绝对路径。其实可以考虑手动把 whl 解压到一个目录内,然后把这个目录添加到 sys.path 里面。我在公司的项目里试过这么干,配合 CentOS 内置的 Python 似乎没什么问题。

推荐统一用 conda

只用 miniconda 不就可以了。。

poetry ?

Direnv + nix如果不怕上手难度的话,我用起来挺好的现在有一个 decency 就是这个封装的

devenv

推荐 rye

楼主不会用 miniconda 或 Anaconda 版本管理多个项目的 Python 环境?

每次跑代码前,用一下 pip -V ,查看用的是哪个环境

不推荐 Miniconda 或者 Anaconda ,package 多了安装很慢, 推荐用 Mamba

我因为同时需要用 Python R 和其他一些软件,就统一 Miniconda 管理了。基本上就保持 Python R 其他软件按语言分开各建一个环境,Python 如果需要不同版本也新建一个环境。系统 Python 就只装了 Jupyter 套装。嫌 conda 算依赖和下载太慢就装上 mamba 。

github.com/jdx/mise + UV

pycharm venv 每个项目单独装,不装全局,用完可以删除