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

时间:2015-08-31 00:02:24

标签: python pip requirements.txt

我正在使用以下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中,pip install文件上应用的requirements.txt命令可以正常运行。

17 个答案:

答案 0 :(得分:35)

这种方法(在目录中具有所有依赖关系而不从索引下载)仅在目录包含所有包时才有效。因此,该目录应包含所有依赖项,但也包含这些依赖项所依赖的所有包(例如sixpytz等。)

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

答案 1 :(得分:13)

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

此方法有效(在我的情况下,<pkg>pyserial

python3 -m pip install <pkg>

答案 2 :(得分:4)

尽管它并不能真正回答这个特定问题。其他人也收到与此错误相同的错误消息。

对于那些像我这样最初忘记了-r的人:使用pip install -r requirements.txt -r对于命令至关重要。

原始答案:

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

答案 3 :(得分:2)

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

[Common] _BSMachError: port b43b; (os/kern) invalid capability (0x14) "Unable to insert COPY_SEND"
[Common] _BSMachError: port b43b; (os/kern) invalid name (0xf) "Unable to deallocate send right"

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

答案 4 :(得分:2)

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

命令:

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

答案 5 :(得分:2)

并非总是如此,但是在某些情况下,该软件包已经存在。例如-getpass。它未在“点子列表”中列出,但可以导入和使用:

enter image description here

如果我尝试通过pip install getpass进行安装,则会出现以下错误: “找不到满足要求getpass的版本”

答案 6 :(得分:2)

如果您在工作场所遇到此问题。这可能是您的解决方案。

class Custom extends Object {
  custom() {}
}

let custom = new Custom();
custom.foo = "bar";
console.log(custom.constructor.name, custom);
// Custom {"foo": "bar"}

// naive method:
let objVanilla = {}
console.log(objVanilla.constructor.name, objVanilla);
// Object {}

// safe method:
objSafe = Object.create(Object.getPrototypeOf(custom), {});
console.log(objSafe.constructor.name, objSafe);
// Custom {}

答案 7 :(得分:1)

从 pypi.org 安装 Pip。

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

答案 8 :(得分:1)

仅提醒您此错误是谁发给Google的,就在这里

假设我收到此错误:

$ 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(在撰写本文时,service disabled)或google,或搜索pypi site以获取首先输入正确的软件包名称:

$ python3.8 -m pip list aalib | grep -i aalib
python-aalib                0.3.2

然后成功安装:

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

答案 9 :(得分:0)

如果您发现该软件包的其他版本可用,请在 google 中搜索 例如使用它 我在使用 glob 时遇到错误,所以我改用了 glob2

答案 10 :(得分:0)

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

轻松阅读

答案 11 :(得分:0)

在稍有不同的情况下,在 MacO 上出现相同的错误。显然,超过 45 的 setuptools 版本可能会暴露一些问题,这个命令让我过去了: pip3 install setuptools==45

答案 12 :(得分:0)

在Windows 10上的anaconda(python 3.7)中安装awscli时出现此错误。 在进行故障排除时,我去了答案https://stackoverflow.com/a/49991357/6862405,然后去了https://stackoverflow.com/a/54582701/6862405。最后发现我需要安装库PyOpenSSLcryptographyenum34idnaipaddress。安装完这些命令(仅使用pip install命令)后,我就可以安装awscli

答案 13 :(得分:0)

只需遵循项目页面上列出的要求:https://pypi.org/project/pgmagick/

答案 14 :(得分:0)

以下命令对我有用-

python -m pip install flask

答案 15 :(得分:-3)

使用命令提示符,然后选择以管理员身份运行。

升级点子版本

要升级PIP,请键入以下命令,然后按Enter:-

python.exe -m pip安装--upgrade pip

返回python路径C:\ Users \ Jack \ AppData \ Local \ Programs \ Python \ Python37 \ Scripts

键入jupyter笔记本

您将被重定向到resume-Jupyter主页

希望它能帮助!!!!!!!!!!!

答案 16 :(得分:-4)

might help

sudo pip install wheel == 0.29.0