如何将默认包添加到所有新 python 的 venvs

How add default packages to all new python's venvs

我使用 Python 和 pip trhough asdf 版本管理器,在我的旧电脑中,当我创建一个新的 venv 时,它已经带有一些默认包。我现在使用的是 python (3.9.12) 和 pip (22.0.4) 的较新版本,它没有附带基本和必要的东西,例如 gnureadline,能够在 python 的 shell 中查看命令历史记录。不得不在所有新的 venvs 中再次安装它真的很烦人,我试图避免使用别名来创建 venv 并在其中安装我想要的东西。有办法给所有的venvs设置一些默认包吗?

有一个选项:

--system-site-packages
                      Give the virtual environment access to the system
                      site-packages dir.

因此,如果您使用 python3 -m venv --system-site-packages .venv,那么您可以在系统级别安装您希望对所有环境可用的软件包。您必须注意在系统级别安装的软件包。

如果您的发行版上的系统 python 是一团糟,并且您无法从中删除您不想在 venvs 中看到的内容,那么您将需要寻找其他选择。

一种可能是将通用包安装到某个目标目录:

python3 -m pip install dep1 dep2 --target=/path/to/common

然后使这个包目录始终可见:

export PYTHONPATH=/path/to/common