【问题标题】:pip: Could not find an activated virtualenv (required)pip:找不到激活的 virtualenv(必需)
【发布时间】:2013-05-03 20:13:24
【问题描述】:

我正在尝试在 mac osx 10.8.3 上安装 virtualenv 和/或 virtualenvwrapper

这两天我一直在和python打架。最后我能够使用 brew 安装 python 2.7.4。在我使用 easy_install 安装 virtualenv 之前。然后我试图卸载它,试图让我的电脑处于与我的一位同事相同的情况。也许我成功卸载了它,也许没有。我不知道如何测试它。现在我应该使用 -

安装 virtualenv
pip install virtualenv

但它给了我 -

Could not find an activated virtualenv (required).

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

还有变量:PIP_RESPECT_VIRTUALENV 为空:

echo $PIP_RESPECT_VIRTUALENV

我该如何解决这个问题?

谢谢

【问题讨论】:

  • pip和python哪个版本?
  • python 是 2.7.4。而 pip 就是它里面的那个。感谢您的提问。
  • 试试echo $PIP_REQUIRE_VIRTUALENV

标签: python osx-mountain-lion virtualenv pip


【解决方案1】:

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

export PIP_REQUIRE_VIRTUALENV=true

这可能会导致麻烦。如果存在,请将其更改为 false 并运行 -

source ~/.bashrc

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

注意:如果您在当前用户的根目录中有 .bash_profile 而不是 .bashrc,则一切正常。

【讨论】:

  • 确实存在 export PIP_RESPECT_VIRTUALENV=true 这一行。所以我评论了它。然后 source 再次运行该文件,但它仍然无法正常工作。所以我打开了一个新终端,现在它可以工作了。非常感谢。
  • 是的,我必须将其设置为 false。
  • 对于遇到此问题的其他人:请注意PIP_RESPECT_VIRTUALENV(如原始问题中所述)和PIP_REQUIRE_VIRTUALENV之间的区别,即上述解决方案。
  • 导致此错误的问题也可能被.bashrc中的其他设置调用,例如VIRTUALENVWRAPPER_PYTHON。运行export PIP_REQUIRE_VIRTUALENV=false,然后在我的情况下运行 pip uninstall / install virtualenv。
【解决方案2】:

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

这个设置是一个很好的安全检查;通常,您会希望将东西安装到 virtualenvs 中。但是,有时您确实想使用全局/系统 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
...

【讨论】:

  • 另请参阅有关~/.pip/pip.conf 的其他答案。环境将覆盖 pip.conf 设置,但如果您需要更改行为,最好在源头更改它。
【解决方案3】:

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

syspip(){
    PIP_REQUIRE_VIRTUALENV="" pip "$@"
}

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

【讨论】:

    【解决方案4】:

    您可能拥有此“锁”的另一个地方是pip.conf 文件。在我的情况下,我的 ~/Library/Application Support/pip 文件夹中有一个,但忘记了。

    文件的典型内容可能是:

    [install]
    require-virtualenv = true
    
    [uninstall]
    require-virtualenv = true
    

    与其他答案类似,文件中的false应改为true

    【讨论】:

    • 这个文件也可以在~/.pip/pip.conf找到
    【解决方案5】:

    验证 ~/.pip/pip.conf 的内容,如:

    [global]
    index=https://pypi.python.org/simple/
    
    require-virtualenv=false
    

    如果之前设置为 require-virtualenv=true

    【讨论】:

      【解决方案6】:

      对于 matchbook,你必须去 '.bash_profile'

      1) 在终端中使用您最喜欢的编辑器打开

      nano .bash_profile 或 vim .bash_profile

      2) 找到写着

      的文本行

      导出 PIP_REQUIRE_VIRTUALENV=true

      3) 将其删除或设置为“false”

      4) 最后重启你的终端

      【讨论】:

      • 这与当前接受的解决方案有何不同?
      • 嗯,它在另一个文件上,这就是我发布它的原因。因为这里的指南我找不到它
      【解决方案7】:

      在这里注意@JCotton 的建议很重要——保持你的 pip 设置只安装到 virtualenvs 是一个很好的做法。

      他的解决方案是再次设置pip install --upgrade pip --isolated 的 virtualenv。

      您不应该通过配置文件或编辑 ~/.bash_rc 或 ~/.bash_profile 来关闭需要 virtualenv 来安装项目的 pip 包。我们只在这里这样做是因为 OP 需要安装 virtualenv 本身。

      一般来说,我看到人们一开始就没有为他们的项目正确设置 virtualenv 时会收到此消息。提醒要使用自己的 python 和 pip 创建一个 virtualenv,这样你就不会遇到“找不到激活的 virtualenv”错误,你运行virtualenv -p python3

      【讨论】:

      • 希望提供上述建议的规范链接。我普遍同意 virtualenv 是编写应用程序的好主意。有时人们不写“项目”*。比如说,这是一个单行的,或者是一些小的、一次性的测试用例。 Virtualenv 在这些情况下只是烦人和阻碍,特别是当 pyyaml 之类的东西默认不存在时。但是,也许我做错了?一直在寻求提升我的知识。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-10-31
      • 2018-05-16
      • 1970-01-01
      • 1970-01-01
      • 2017-07-29
      • 1970-01-01
      • 2018-06-25
      相关资源
      最近更新 更多