找不到满足要求的版本<package>

我正在使用以下requirements.txt文件在Ubuntu 12.04中安装几个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 install命令。

但这只适用于特定的包。当我再次运行第二个pip install命令时,进程现在停止抱怨另一个所需的包,我需要再次重复该过程,即:手动安装新的所需包(使用上面的命令),然后运行第二个pip install命令。

到目前为止,我不得不手动安装sixpytznose,现在它抱怨需要mock

有没有一种方法告诉pip自动安装所有所需的依赖项,这样我就不必手动一个一个地安装了?

添加:这只发生在Ubuntu 12.04 BTW。在Ubuntu 14.04中,应用在requirements.txt文件上的pip install命令没有问题。

1771812 次浏览

这种方法(将所有依赖项放在一个目录中,而不是从索引中下载)只在目录包含所有包时有效。因此,目录应该包含所有依赖项,以及这些依赖项所依赖的所有包(例如,sixpytz等)。

因此,您应该手动将这些包包含在requirements.txt中(以便第一步显式下载它们),或者您应该使用PyPI安装所有包,然后使用pip freeze > requirements.txt存储所需的所有包的列表。

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

pip install --isolated Flask

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

经过2个小时的搜索,我找到了一种方法,只需一行命令就可以解决它。你需要知道软件包的版本(只需搜索软件包版本)。

命令:

python3 -m pip install --pre --upgrade PACKAGE==VERSION.VERSION.VERSION

不一定,但在某些情况下包已经存在。例如- getpass。它不在“pip list”中列出,但可以导入和使用:

enter image description here

如果我尝试pip install getpass,我会得到以下错误: "Could not find a version that satisfy the requirement getpass"

.

我已经安装了python3,但我在/usr/bin/python中的python仍然是旧的2.7版本

这是有效的(在我的情况下<pkg>pyserial):

python3 -m pip install <pkg>

下面的命令对我有用——

python -m pip install flask

我在anaconda (python 3.7)的Windows 10上安装awscli时得到此错误。 在排除故障时,我转到答案https://stackoverflow.com/a/49991357/6862405,然后转到https://stackoverflow.com/a/54582701/6862405。最后发现我需要安装库PyOpenSSLcryptographyenum34idnaipaddress。在安装这些(简单地使用pip install命令)后,我能够安装awscli

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

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

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

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

原来的答案是:

https://stackoverflow.com/a/42876654/10093070 < a href = " https://stackoverflow.com/a/42876654/10093070 " > < / >

只是提醒谁谷歌这个错误,来这里。

假设我得到这个错误:

$ python3 example.py
Traceback (most recent call last):
File "example.py", line 7, in <module>
import aalib
ModuleNotFoundError: No module named 'aalib'

因为它提到了aalib,我想尝试aalib:

$ python3.8 -m pip install aalib
ERROR: Could not find a version that satisfies the requirement aalib (from versions: none)
ERROR: No matching distribution found for aalib

但它实际上是包名错误,确保pip search(在撰写本文时是服务残疾人),或谷歌,或搜索pypi网站以获得准确的包名:

enter image description here

安装成功:

$ python3.8 -m pip install python-aalib
Collecting python-aalib
Downloading python-aalib-0.3.2.tar.gz (14 kB)
...

pip --help所述:

$ python3.8 -m pip --help
...
-v, --verbose               Give more output. Option is additive, and can be used up to 3 times.

为了有一个系统的方法来找出根本原因,而不是依靠运气,你可以附加pip命令的-vvv选项来查看详细信息,例如:

$ python3.8 -u -m pip install aalib -vvv
User install by explicit request
Created temporary directory: /tmp/pip-ephem-wheel-cache-b3ghm9eb
Created temporary directory: /tmp/pip-req-tracker-ygwnj94r
Initialized build tracking at /tmp/pip-req-tracker-ygwnj94r
Created build tracker: /tmp/pip-req-tracker-ygwnj94r
Entered build tracker: /tmp/pip-req-tracker-ygwnj94r
Created temporary directory: /tmp/pip-install-jfurrdbb
1 location(s) to search for versions of aalib:
* https://pypi.org/simple/aalib/
Fetching project page and analyzing links: https://pypi.org/simple/aalib/
Getting page https://pypi.org/simple/aalib/
Found index url https://pypi.org/simple
Getting credentials from keyring for https://pypi.org/simple
Getting credentials from keyring for pypi.org
Looking up "https://pypi.org/simple/aalib/" in the cache
Request header has "max_age" as 0, cache bypassed
Starting new HTTPS connection (1): pypi.org:443
https://pypi.org:443 "GET /simple/aalib/ HTTP/1.1" 404 13
[hole] Status code 404 not in (200, 203, 300, 301)
Could not fetch URL https://pypi.org/simple/aalib/: 404 Client Error: Not Found for url: https://pypi.org/simple/aalib/ - skipping
Given no hashes to check 0 links for project 'aalib': discarding no candidates
ERROR: Could not find a version that satisfies the requirement aalib (from versions: none)
Cleaning up...
Removed build tracker: '/tmp/pip-req-tracker-ygwnj94r'
ERROR: No matching distribution found for aalib
Exception information:
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/pip/_internal/cli/base_command.py", line 186, in _main
status = self.run(options, args)
File "/usr/lib/python3/dist-packages/pip/_internal/commands/install.py", line 357, in run
resolver.resolve(requirement_set)
File "/usr/lib/python3/dist-packages/pip/_internal/legacy_resolve.py", line 177, in resolve
discovered_reqs.extend(self._resolve_one(requirement_set, req))
File "/usr/lib/python3/dist-packages/pip/_internal/legacy_resolve.py", line 333, in _resolve_one
abstract_dist = self._get_abstract_dist_for(req_to_install)
File "/usr/lib/python3/dist-packages/pip/_internal/legacy_resolve.py", line 281, in _get_abstract_dist_for
req.populate_link(self.finder, upgrade_allowed, require_hashes)
File "/usr/lib/python3/dist-packages/pip/_internal/req/req_install.py", line 249, in populate_link
self.link = finder.find_requirement(self, upgrade)
File "/usr/lib/python3/dist-packages/pip/_internal/index/package_finder.py", line 926, in find_requirement
raise DistributionNotFound(
pip._internal.exceptions.DistributionNotFound: No matching distribution found for aalib

从上面的日志中,很明显没有找到URL https://pypi.org/simple/aalib/ 404。然后您可以猜测导致404的可能原因,即错误的包名。另外,我可以修改pip模块的相关python文件,用上面的日志进一步调试。要编辑.whl文件,可以使用使用__ABC2命令来__ABC3和pack

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

Pip从pypi.org安装。

pip install -U -i  https://pypi.org/simple package

一个可能的错误,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中读取

如果您发现该包的其他版本可用,则在谷歌中搜索 举个例子 我得到错误使用glob,所以我使用glob2代替

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

如果包是本地的,不要错过相对路径。 例如< / p >

pip install ./<pkg>

终于对我起作用了,而

pip install <pkg>

产生了:

ERROR: Could not find a version that satisfies the requirement <pkg> (from versions: none)
ERROR: No matching distribution found for <pkg>
因为这是一个相当烦人的问题,可能会让初学者陷入很长一段时间,在这里我写了一个完整的公会。

如果你正在运行pip install PACKAGEpython -m pip install PACKAGE,并且报告了no matching version found错误,下面是如何解决问题的方法。

  1. 在浏览器上搜索你的包,例如我的包是pycypto,在这里我搜索pycypto pypi

  2. 找到你的包,打开pypi上的链接,单击下载文件

  3. 打开一个python shell,导入任何你安装的包,例如,我之前安装过Pillow。

>>> import PIL
>>> PIL.__path__
['/Applications/MAMP/htdocs/canvas/src/zzd/env/lib/python3.7/site-packages/PIL']

PACKAGE.__path__函数将为你提供所有包应该进入的side packages路径。

< p >加上: 如果你不知道你之前安装了什么包,运行pip list来获得一个已安装包的列表
  1. 获取路径后,打开shell, CD到该路径
cd /Applications/MAMP/htdocs/canvas/src/zzd/env/lib/python3.7/site-packages/
open
  1. 解压下载的文件,将其拖到site-packages中。

  2. cd到下载目录下,运行setup.py进行安装

cd pycrypto-2.6.1
python setup.py install

然后,您应该能够在python中导入和使用该包。

我在安装pandas-1.4.3时遇到了一个问题,这个问题是我的python补丁版本。pandas-1.4.3需要python版本3.8.13,不能使用3.8.9:

python install -r requirements.txt # or pip install pandas==1.4.3
# -> Could not find a version that satisfies...
conda activate my_project # creates a virtual env for a new python version
conda install python=3.8.13 # installing the new python version
python --version # displays 3.8.13
pip install -r python/requirements.txt
# -> pandas installed as expected