我正在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解释器,而你没有使用。

我也遇到了同样的问题,它只发生在我从Docker映像(或Dockerfile)运行命令时。几个小时后,我终于通过更新我的python解释器解决了这个问题。指出我的pip-package需要python>=3,7,但我的Docker映像使用的是python 3.6。

提示:要检查是否有类似的问题,只需检查pip包要求和您的python版本。私有pip包解释器要求写在setup.py或setup.cfg中。公共pip包通常托管在pypi.org上,在那里您可以用浏览器检查解释器需求。要检查python解释器版本,只需在控制台中编写python——version或python3——version

一般问题描述

正如其他答案所指出的,也可能有其他的要求,你不满足,这就是为什么pip不能为你找到合适的包版本。所有要求都写在pip包文档中,可以从https://pypi.org/project/graphene-django/your-package轻松阅读

其他回答

当我失去网络连接时,我犯了这个错误。

尝试使用以下命令通过powershell安装flask。

pip install --isolated Flask

这将允许安装避免环境变量和用户配置。

如果你在工作中遇到这样的问题。这可能是你的解决方案。

pip install -U <package_name> --user --proxy=<your proxy>

尽管它并没有真正回答这个具体的问题。其他人也收到了同样的错误信息。

对于那些像我一样最初忘记了-r的人:使用pip install -r requirements.txt, -r对于命令是必不可少的。

原来的答案是:

https://stackoverflow.com/a/42876654/10093070

同样的错误,但在MacOs上略有不同。显然,setuptools版本超过45可以暴露一些问题,这个命令让我过去了: Pip3 install setuptools==45