自从询问有关处理 Python 包的 Pip 与包管理器的问题以来,我学到了很多东西,尤其是关于带有venv
模块的虚拟环境。这些天来,我几乎只pip
在虚拟环境中安装软件包。我几乎很少安装系统范围的 python 包。
不过,我一直害怕的一件事是,我可能会在
pip install
没有意识到我没有venv
激活命令的情况下运行命令。
自从询问有关处理 Python 包的 Pip 与包管理器的问题以来,我学到了很多东西,尤其是关于带有venv
模块的虚拟环境。这些天来,我几乎只pip
在虚拟环境中安装软件包。我几乎很少安装系统范围的 python 包。
不过,我一直害怕的一件事是,我可能会在
pip install
没有意识到我没有venv
激活命令的情况下运行命令。
venv
?
pip
在 venv 之外,您可以使用 shell 别名来接管。alias 'pip=cowsay "You are not in a virtual environment"'
在 virtualenv 启动文件中(例如,当您进入 venv 时获取的那个):
unalias 'pip'
操作时有一个全局选项
require-virtualenv
需要虚拟环境pip
。启用此功能的几种方法(选择一种):
作为这样的配置选项(这是我的偏好),例如
~/.config/pip/pip.conf
或/etc/pip.conf
:您还可以运行此命令为您修改/创建配置文件:
使用环境变量
PIP_REQUIRE_VIRTUALENV
并将其设置为 valuetrue
。直接使用
--require-virtualenv
命令行选项。如果您随后尝试在 virtualenv 之外安装软件包,您将看到以下错误:
如果您需要临时覆盖此选项以升级 pip 或在较旧的 Python 版本上安装 virtualenv,您可以在命令前添加
PIP_REQUIRE_VIRTUALENV=false
.注意:在较旧的 pip 版本(< 22.0)中,输出和整个文档中似乎缺少此选项
--help
,但它对我来说工作得很好。在 Python 2.7.x 上使用 20.3.4 作为最新版本进行测试。