Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/360.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何确保只在virtualenv中调用pip?_Python_Virtualenv_Pip - Fatal编程技术网

Python 如何确保只在virtualenv中调用pip?

Python 如何确保只在virtualenv中调用pip?,python,virtualenv,pip,Python,Virtualenv,Pip,当我不在虚拟环境中时,如何防止意外调用pip 我编写了以下名为pip的脚本,并将其添加到我的~/bin(在我的$PATH中位于pip之前): 有更好的方法吗?我建议将其放入您的~/.bashrc文件中: export PIP_REQUIRE_VIRTUALENV=true export PIP_REQUIRE_VIRTUALENV=true 您还可以将以下函数添加到~/.bashrc中,如果您选择,该函数允许您在虚拟环境之外显式调用pip: gpip() { PIP_REQUIRE_V

当我不在虚拟环境中时,如何防止意外调用pip

我编写了以下名为
pip
的脚本,并将其添加到我的
~/bin
(在我的
$PATH
中位于pip之前):


有更好的方法吗?

我建议将其放入您的
~/.bashrc
文件中:

export PIP_REQUIRE_VIRTUALENV=true
export PIP_REQUIRE_VIRTUALENV=true
您还可以将以下函数添加到
~/.bashrc
中,如果您选择,该函数允许您在虚拟环境之外显式调用pip:

gpip() {
   PIP_REQUIRE_VIRTUALENV="" pip "$@"
}
现在,您仍然可以使用全局pip版本进行升级virtualenv等操作:

gpip install --upgrade pip virtualenv

每次检查
哪个pip
不是选项,对吗?你的意思是每次运行pip之前都在命令行上检查
哪个pip
,这只是我脑海中浮现的第一件事。问题是我根本忘了检查,这个脚本提醒我自己要确保我在virtualenv中,或者在virtualenv之外明确地给pip打电话……我知道我已经回答了一个老问题,但我来这里是为了解决同一个问题,这里的其他答案对我来说是不够的。现在,我已经“解决”了我的问题,我在这里添加了我的解决方案,希望能使其他处于相同情况的人受益。
gpip install --upgrade pip virtualenv