pip:找不到激活的virtualenv(必填)

Pie*_*oni 38 python pip virtualenv osx-mountain-lion

我想在mac osx 10.8.3上安装virtualenv和/或virtualenvwrapper

过去两天我一直在和python战斗.最后我能够使用brew安装python 2.7.4.在使用easy_install安装virtualenv之前.然后我尝试卸载它,试图使我的计算机与我的同事一样.也许我成功地卸载了它,也许不是.我不知道如何测试它.现在我应该使用 - 安装virtualenv -

pip install virtualenv
Run Code Online (Sandbox Code Playgroud)

但它给了我 -

Could not find an activated virtualenv (required).
Run Code Online (Sandbox Code Playgroud)

pip install virtualenvwrapper 给出完全相同的输出.

变量:PIP_RESPECT_VIRTUALENV是null:

echo $PIP_RESPECT_VIRTUALENV
Run Code Online (Sandbox Code Playgroud)

我该如何解决这个问题?

谢谢

Bib*_*ath 95

打开你的~/.bashrc文件,看看这行是否存在 -

export PIP_REQUIRE_VIRTUALENV=true
Run Code Online (Sandbox Code Playgroud)

这可能会造成麻烦.如果它在那里,将其更改为false并运行 -

source ~/.bashrc
Run Code Online (Sandbox Code Playgroud)

如果没有,请export PIP_REQUIRE_VIRTUALENV=false从终端运行.

  • 对于遇到此问题的其他人:请注意"PIP_RESPECT_VIRTUALENV"(如原始问题中所述)和"PIP_REQUIRE_VIRTUALENV"之间的区别,这是上面提到的解决方案. (4认同)
  • 导致此错误的问题也可能被`.bashrc` 中的其他设置调用,例如`VIRTUALENVWRAPPER_PYTHON`。运行 `export PIP_REQUIRE_VIRTUALENV=false` 然后 pip uninstall / install virtualenv 在我的情况下工作。 (3认同)

JCo*_*ton 7

@Bibhas有它; +1寻找export PIP_REQUIRE_VIRTUALENV=true~/.profile~/.bashrc.您可以使用确认当前shell中的设置env |grep PIP_REQUIRE_VIRTUALENV.

这个设置是一个很好的安全检查; 通常情况下,你会想要将东西安装到virtualenvs中.但是,有时您确实希望使用global/system python.在这些情况下,请看一下--isolated:

以隔离模式运行pip,忽略环境变量和用户配置.

$ pip install --upgrade pip
Could not find an activated virtualenv (required).
$ pip install --upgrade pip --isolated
Requirement already up-to-date: pip in /usr/local/lib/python2.7/site-packages
$ pip freeze --isolated
...
Run Code Online (Sandbox Code Playgroud)


小智 5

对已经提出的解决方案的另一个解决方案是添加一个shell命令,允许您通过临时覆盖默认设置来安装py包.添加到您~/.profile,~/.bashrc或任何你保持你的shell的出口/设置(在我的情况,~/.zshrc).

syspip(){
    PIP_REQUIRE_VIRTUALENV="" pip "$@"
}
Run Code Online (Sandbox Code Playgroud)

通过这个简单的添加,您可以通过将pip包安装到系统中syspip install <package>.