我正在Ubuntu 12.04中使用以下requirements.txt文件安装几个Python包:
numpy>=1.8.2,<2.0.0
matplotlib>=1.3.1,<2.0.0
scipy>=0.14.0,<1.0.0
astroML>=0.2,<1.0
scikit-learn>=0.14.1,<1.0.0
rpy2>=2.4.3,<3.0.0
下面是两条命令:
$ pip install --download=/tmp -r requirements.txt
$ pip install --user --no-index --find-links=/tmp -r requirements.txt
(第一个程序下载包,第二个程序安装包)。
进程经常被错误停止:
Could not find a version that satisfies the requirement <package> (from matplotlib<2.0.0,>=1.3.1->-r requirements.txt (line 2)) (from versions: )
No matching distribution found for <package> (from matplotlib<2.0.0,>=1.3.1->-r requirements.txt (line 2))
我手动修复:
pip install --user <package>
然后再次运行第二个PIP安装命令。
但这只适用于特定的包装。当我再次运行第二个pip install命令时,进程停止了,现在抱怨有另一个所需的包,我需要再次重复该过程,即:手动安装新的所需包(使用上面的命令),然后运行第二个pip install命令。
到目前为止,我不得不手动安装6,pytz, nose,现在它抱怨需要mock。
有没有办法告诉pip自动安装所有需要的依赖项,这样我就不必手动一个一个地安装了?
补充:这只发生在Ubuntu 12.04 BTW中。在Ubuntu 14.04中,应用在requirements.txt文件上的pip安装命令可以正常工作。
因为这是一个相当烦人的问题,可能会让初学者陷入很长一段时间,在这里我写了一个完整的公会。
如果您正在运行pip安装包或python -m pip安装包,并且报告了不匹配的版本发现错误,下面是如何解决问题。
在浏览器上搜索你的包,例如我的包是pycypto,在这里我搜索pycypto pypi
找到你的包,打开pypi上的链接,点击下载文件
打开一个python shell,导入任何你安装的包,例如,我之前安装过Pillow。
>>> import PIL
>>> PIL.__path__
['/Applications/MAMP/htdocs/canvas/src/zzd/env/lib/python3.7/site-packages/PIL']
包中。__path__函数将给你所有包应该进入的路径。
加:
如果您不知道之前安装了什么包,运行PIP list以获得已安装包的列表。
获取路径后,打开shell, CD到该路径
cd /Applications/MAMP/htdocs/canvas/src/zzd/env/lib/python3.7/site-packages/
open
解压下载的文件,将其拖到site-packages中。
CD到下载目录下,运行setup.py进行安装
cd pycrypto-2.6.1
python setup.py install
然后,您应该能够在python中导入和使用该包。
因为这是一个相当烦人的问题,可能会让初学者陷入很长一段时间,在这里我写了一个完整的公会。
如果您正在运行pip安装包或python -m pip安装包,并且报告了不匹配的版本发现错误,下面是如何解决问题。
在浏览器上搜索你的包,例如我的包是pycypto,在这里我搜索pycypto pypi
找到你的包,打开pypi上的链接,点击下载文件
打开一个python shell,导入任何你安装的包,例如,我之前安装过Pillow。
>>> import PIL
>>> PIL.__path__
['/Applications/MAMP/htdocs/canvas/src/zzd/env/lib/python3.7/site-packages/PIL']
包中。__path__函数将给你所有包应该进入的路径。
加:
如果您不知道之前安装了什么包,运行PIP list以获得已安装包的列表。
获取路径后,打开shell, CD到该路径
cd /Applications/MAMP/htdocs/canvas/src/zzd/env/lib/python3.7/site-packages/
open
解压下载的文件,将其拖到site-packages中。
CD到下载目录下,运行setup.py进行安装
cd pycrypto-2.6.1
python setup.py install
然后,您应该能够在python中导入和使用该包。