【问题标题】:Pip installing globally in virtualenv在 virtualenv 中全局安装 Pip
【发布时间】:2014-02-24 22:17:27
【问题描述】:

每当我使用以下输出运行以下命令时,我都无法让 pip 在 vi​​rtualenv 中工作:

$ virtualenv --no-site-packages foo
  New python executable in foo/bin/python
  Installing setuptools, pip...done.
$ cd foo/
$ source bin/activate
$ pip freeze
  Django==1.6.1
  PIL==1.1.7
  beautifulsoup4==4.3.2
  distribute==0.6.34
  dj-database-url==0.2.2
  dj-static==0.0.5
  django-toolbelt==0.0.1
  gunicorn==18.0
  numpy==1.7.1
  psycopg2==2.5.2
  pystache==0.5.3
  requests==2.2.1
  scipy==0.12.0
  static==1.0.2
  stevedore==0.14.1
  virtualenv==1.11.4
  virtualenv-clone==0.2.4
  virtualenvwrapper==4.2
  wsgiref==0.1.2

我确实有正确的 shebang:#!/Users/username/Programming/Django_Projects/foo/bin/python

这是我运行 which pip 时得到的结果:/Users/username/Programming/Django_Projects/foo/bin/pip

当我尝试安装 Django 时:Requirement already satisfied (use --upgrade to upgrade): Django in /usr/local/lib/python2.7/site-packages Cleaning up...

【问题讨论】:

  • 你到底想做什么?
  • 我正在尝试将软件包安装到 virtualenv 但 pip 一直在尝试全局安装软件包

标签: python django virtualenv pip


【解决方案1】:

我不太确定,但我认为当您调用 --no-site-packages 选项时,您基本上是在继承系统中安装的模块,我和您一样,但我找不到该站点-packages 文件夹(安装时应包含您的模块)在我的两个文件夹中。

我的建议是避免使用 no-site-packages 选项,如果您想要 PIP 的“全新”安装。

【讨论】:

    【解决方案2】:

    我遇到了类似的问题。我最终设置了以下环境变量,此后一直很顺利。

    PIP_REQUIRE_VIRTUALENV=true
    PIP_RESPECT_VIRTUALENV=true
    

    【讨论】:

    • 谢谢,但也没有帮助