mas*_*mas 5 python package-management pip
自从询问有关处理 Python 包的 Pip 与包管理器的问题以来,我学到了很多东西,尤其是关于带有venv
模块的虚拟环境。这些天我几乎只pip
在内部虚拟环境中安装包。我几乎很少安装系统范围的 python 包。
不过,我总是害怕的一件事是,我可能会在pip install
没有意识到我没有venv
激活的情况下运行
命令。
venv
?有一个全局选项require-virtualenv
可以在操作时需要虚拟环境pip
。
实现此功能的几种方法(选择一种):
作为配置选项(这是我的偏好),例如~/.config/pip/pip.conf
或/etc/pip.conf
:
[global]
require-virtualenv = True
Run Code Online (Sandbox Code Playgroud)
您还可以运行此命令来修改/创建配置文件:
pip config set global.require-virtualenv True
Run Code Online (Sandbox Code Playgroud)
使用环境变量PIP_REQUIRE_VIRTUALENV
并将其设置为 value true
。
直接使用--require-virtualenv
命令行选项。
如果您尝试在 virtualenv 之外安装软件包,您将看到以下错误:
ERROR: Could not find an activated virtualenv (required).
Run Code Online (Sandbox Code Playgroud)
如果您需要临时覆盖此选项以升级 pip 或在较旧的 Python 版本上安装 virtualenv,您可以在命令前面加上PIP_REQUIRE_VIRTUALENV=false
.
注意:在较旧的 pip 版本(< 22.0)中,输出和文档中似乎缺少此选项--help
,但它对我来说工作得很好。在 Python 2.7.x 上使用 20.3.4 作为最新版本进行了测试。
旁注:PEP 704(撰写本文时的草案)是“[...]建议像 pip 这样的包安装程序在 Python 3.13+ 上默认需要虚拟环境”的提案。
小智 3
您可以使用 shell 别名pip
在 venv 之外进行接管。
alias 'pip=cowsay "You are not in a virtual environment"'
在 virtualenv 启动文件中(例如,当您输入 venv 时获取的文件):
unalias 'pip'
归档时间: |
|
查看次数: |
442 次 |
最近记录: |