Python 当我使用requirements.txt时,pip未从virtualenv内安装到site packages目录

Python 当我使用requirements.txt时,pip未从virtualenv内安装到site packages目录,python,django,windows,virtualenv,pip,Python,Django,Windows,Virtualenv,Pip,我对使用virtualenv运行Python还比较陌生,所以这可能是一个简单的修复方法,但我一辈子都搞不清楚到底发生了什么。我正在运行安装了Python 2.7.5的Windows 7 professional x64,我已经安装了pip和virtualenv。我有一个django项目,我正在尝试工作,我已经从Heroku存储库中克隆了这个项目。当我尝试设置virtualenv并安装项目的需求时,我遇到了一个我无法理解的奇怪错误。我的所有设置如下所示: C:\Users\xxx\PythonPr

我对使用virtualenv运行Python还比较陌生,所以这可能是一个简单的修复方法,但我一辈子都搞不清楚到底发生了什么。我正在运行安装了Python 2.7.5的Windows 7 professional x64,我已经安装了pip和virtualenv。我有一个django项目,我正在尝试工作,我已经从Heroku存储库中克隆了这个项目。当我尝试设置virtualenv并安装项目的需求时,我遇到了一个我无法理解的奇怪错误。我的所有设置如下所示:

C:\Users\xxx\PythonProjects\myProject> Scripts\activate
(env) C:\Users\xxx\PythonProjects\myProject> pip install -r requirements.txt
django-polymorphic==0.4.2
-e hg+https://bitbucket.org/fcurella/django-profiles@5c982ce7c040351fca9847a85dd4ff29f8a367e6#egg=django_profiles-dev
django-sekizai==0.7
-e git://github.com/divio/django-shop.git@0fb2258d27332166e3f76ad7cf7335c1f0a389b2#egg=django_shop-dev
-e git://github.com/fivethreeo/django-shop-categories.git@345fb100f5f680e6ac2066f74f25515eb2cd9374#egg=django_shop_categories-dev`
Django项目位于C:\Users\xxx\PythonProjects\myProject中

我打开命令提示符,将cd转到myProject文件夹,然后执行以下命令:

C:\Users\xxx\PythonProjects\myProject> virtualenv --no-site-packages env
这将为我的项目创建一个干净的虚拟环境,因此我继续按如下方式激活:

C:\Users\xxx\PythonProjects\myProject> Scripts\activate
(env) C:\Users\xxx\PythonProjects\myProject> pip install -r requirements.txt
django-polymorphic==0.4.2
-e hg+https://bitbucket.org/fcurella/django-profiles@5c982ce7c040351fca9847a85dd4ff29f8a367e6#egg=django_profiles-dev
django-sekizai==0.7
-e git://github.com/divio/django-shop.git@0fb2258d27332166e3f76ad7cf7335c1f0a389b2#egg=django_shop-dev
-e git://github.com/fivethreeo/django-shop-categories.git@345fb100f5f680e6ac2066f74f25515eb2cd9374#egg=django_shop_categories-dev`
提示更改以指示我的virtualenv已处于活动状态,因此我通过python和pip进行了双重检查:

(env) C:\Users\xxx\PythonProjects\myProject> where python
C:\Users\xxx\PythonProjects\myProject\env\Scripts\python.exe
C:\Python27\python.exe

(env) C:\Users\xxx\PythonProjects\myProject>where pip
C:\Users\xxx\PythonProjects\myProject\env\Scripts\pip.exe
C:\Python27\Scripts\pip.exe
由于看起来virtualenv运行正常,我下一步尝试按如下方式pip需求文件:

C:\Users\xxx\PythonProjects\myProject> Scripts\activate
(env) C:\Users\xxx\PythonProjects\myProject> pip install -r requirements.txt
django-polymorphic==0.4.2
-e hg+https://bitbucket.org/fcurella/django-profiles@5c982ce7c040351fca9847a85dd4ff29f8a367e6#egg=django_profiles-dev
django-sekizai==0.7
-e git://github.com/divio/django-shop.git@0fb2258d27332166e3f76ad7cf7335c1f0a389b2#egg=django_shop-dev
-e git://github.com/fivethreeo/django-shop-categories.git@345fb100f5f680e6ac2066f74f25515eb2cd9374#egg=django_shop_categories-dev`
pip似乎已成功运行并安装了我需要的所有软件包。但是,当我加载python时,django是我的需求文件中的一个包:

(env) C:\Users\xxx\PythonProjects\myProject>python
Python 2.7.5 (default, May 15 2013, 22:44:16) [MSC v.1500 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import django
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: No module named django

所以我找到了我自己问题的答案

基本上,如果您在Windows上运行Python2.7和其他可能的版本,有些软件包就不能很好地运行。如果其他人有此问题,您应该从下载Windows二进制文件,并从requirements.txt文件中删除这些软件包。一旦我这样做了,pip在安装过程中停止崩溃,并在我的requirements.txt文件中正确安装了其余的软件包

我需要的软件包是:

枕头 心理医生 报告实验室
明确地说,我已经尝试了使用和不使用-no-site-packages标志的设置。每次的结果都是一样的。我没有windows安装下的virtualenv。但是,如果我没有记错的话,通过pip安装的包将在dist包中解决。请检查并将结果添加到问题描述中好吗?谢谢:谢谢你的快速回复。在env子目录中的任何位置都没有dist packages文件夹。如果确实存在,我假设它将位于myProject\env\Lib\dist包中?没关系。嗯,看起来Windows下的virtualenv确实有不同的行为。但是,我已经在virtualenv中成功安装了Django,并且lib文件确实在lib\site包中。我正在使用PowerShell,仅供参考。激活新的virtualenv后,pip freeze不会返回任何内容。以下是pip安装-U distribute setuptools我有pip freeze返回distribute==0.7.3注意:默认情况下,Windows二进制文件将安装到全局站点软件包文件夹。这意味着在设置虚拟环境时,必须使用-system site-packages标志。如果您已经设置了一个没有站点软件包的虚拟环境,则可以通过重命名/Lib/no-global-site-packages.txt文件或将其完全删除来禁用该行为。我假设您也可以将全局站点包文件夹的内容复制到您的虚拟环境的站点包中,但我还没有搞乱它。事情进展顺利。。。。。。有些软件包玩得不好,因为它们是按规则玩的。你必须知道这些规则。您将不得不使用-system site packages,不仅您不必这样做,而且您不应该设置此标志。请看,我只是注意到,我留下的一组说明仅适用于带有-system site packages标志的我。正如我所说,我没有把这些软件包迁移到本地的virtualenv中,因为我目前只运行一个项目,这不是一个紧迫的问题。