python 从 requirements.txt 安装 pip 时遇到问题

python pip trouble installing from requirements.txt

过去我在 pip 方面很幸运,但是在 venv 上安装一些东西让我有些头疼。 我不断收到类似的错误 在/root/.pip/pip.log

中存储失败的某些包的任何分发版
Could not find any downloads that satisfy the requirement somepackage

Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-build-RjqjFW/psycopg2

我知道这些包安装在主系统上,但好像它们不能在 venv 上运行。你们都是如何解决这个问题的?这是漫长的一天,我只是不明白问题是什么,特别是因为它们在我的本地系统上工作,它们在我的远程系统上的主要 python 安装上工作,但在 venv 中不工作,有些疯狂原因。有什么想法吗?

这是要求,我认为它对 django 有点紧张,但这就是 pip freeze > requirements.txt 给我的

Babel==1.3
Django==1.7.1
Fabric==1.10.1
Flask==0.10.1
Flask-Babel==0.9
Flask-Login==0.2.11
Flask-Mail==0.9.1
Flask-OpenID==1.2.4
Flask-SQLAlchemy==2.0
Flask-WTF==0.10.3
Flask-WhooshAlchemy==0.56
Jinja2==2.7.3
MarkupSafe==0.23
PAM==0.4.2
Pillow==2.3.0
Pygments==1.6
Scrapy==0.24.4
Sphinx==1.2.2
Tempita==0.5.2
WTForms==2.0.1
Werkzeug==0.9.6
Whoosh==2.6.0
adium-theme-ubuntu==0.3.4
apt-xapian-index==0.45
argparse==1.2.1
backports.ssl-match-hostname==3.4.0.2
blinker==1.3
boto==2.20.1
bottle==0.12.7
certifi==14.05.14
chardet==2.0.1
colorama==0.2.5
command-not-found==0.3
coverage==3.7.1
cssselect==0.9.1
debtagshw==0.1
decorator==3.4.0
defer==1.0.6
dirspec==13.10
docutils==0.11
duplicity==0.6.23
ecdsa==0.11
flipflop==1.0
guess-language==0.2
guppy==0.1.9
html5lib==0.999
httplib2==0.8
ipython==2.3.1
itsdangerous==0.24
lockfile==0.8
lxml==3.3.3
nose==1.3.4
numpy==1.8.2
oauthlib==0.6.1
oneconf==0.3.7
paramiko==1.15.2
pbr==0.10.7
pexpect==3.1
piston-mini-client==0.7.5
psycopg2==2.5.4
pyOpenSSL==0.13
pyasn1==0.1.7
pycrypto==2.6.1
pycups==1.9.66
pycurl==7.19.3
pygame==1.9.1release
pygobject==3.12.0
pyserial==2.6
pysmbc==1.0.14.1
python-apt==0.9.3.5ubuntu1
python-debian==0.1.21-nmu2ubuntu2
python-openid==2.2.5
pytz==2014.10
pyxdg==0.25
queuelib==1.2.2
reportlab==3.0
requests==2.2.1
roman==2.0.0
sessioninstaller==0.0.0
simplegeneric==0.8.1
six==1.5.2
software-center-aptd-plugins==0.0.0
speaklater==1.3
sqlalchemy-migrate==0.9.2
sqlparse==0.1.14
system-service==0.1.6
tornado==4.0.2
unity-lens-photos==1.0
urllib3==1.7.1
virtualenv==1.11.6
w3lib==1.10.0
wsgiref==0.1.2
wxPython==2.8.12.1
wxPython-common==2.8.12.1
xdiagnose==3.6.3build2
z3c.xmlhttp==0.5.1
zope.interface==4.0.5
zope.publisher==4.0.0a4
zope.traversing==4.0.0
zope.viewlet==4.0.0a1

我看到了一些问题:

  1. 您的 requirements.txt 适用于基础系统 Python,而非任何虚拟环境。 Django 没有任何外部依赖项。

  2. 您正在使用 root 用户在您的虚拟环境中安装软件包(或者您在不应该使用的情况下使用 sudo)。

最好的选择是从头开始:

$ virtualenv myvenv
...
$ source myvenv/bin/activate
(myvenv) $ pip install django
...
(myvenv) $ pip freeze > requirements.txt

有过类似的问题,但上面的方法对我不起作用。用一个更简单的解决方案澄清它:

(venv) $ pip install --upgrade -r requirements.txt

更新: 此命令升级所有已在您的 requirements.txt 文件中明确列出的软件包。

您的 requirements.txt 文件只是放置在文件中的 pip 安装参数列表。它们用于保存 pip freeze 的结果,以实现可重复安装。在这种情况下,您的 requirements.txt 文件包含 pip freeze 为 运行.

时安装的所有内容的固定版本

我遇到了这个问题,但原因不同——我使用的是旧版本的 virtualenv。在 1.7 版之前,您必须在创建虚拟环境时指定选项 --no-site-packages 才能不包含全局包。

解决此问题的两个选项,要么升级您的 virtualenv:

sudo pip install virtualenv --upgrade
virtualenv venv

或者使用带有 no-site-packages 选项的旧版本:

virtualenv venv --no-site-packages

这修复了我的 requirements.txt 文件。

尝试pip install -r requirements.txt

对我有用

sudo pip install -r requirements.txt pip install -r requirements.txt 为我工作

以下解决方案对我有用:

(my-virtualenv) 20:42 ~/MyPf (master)$ pip freeze > requirements.txt | 
(my-virtualenv) 20:43 ~/MyPf (master)$ pip install -r requirements.txt