OSX Brew Python“找不到满足 pyopencv 要求的版本”

Posted

技术标签:

【中文标题】OSX Brew Python“找不到满足 pyopencv 要求的版本”【英文标题】:OSX Brew Python "Could not find a version that satisfies the requirement pyopencv" 【发布时间】:2013-11-20 17:06:57 【问题描述】:

我正在尝试安装 pyopencv。我已经通过 Brew 安装了 Python 和 OpenCV。快速的which python/pip 表明我正在使用通过 Brew 安装的 Python 版本作为默认版本。我已经通过 pip 安装了 numpy。但是,当我尝试运行 pip install pyopencv 时,我回来了:

Downloading/unpacking pyopencv
  Could not find a version that satisfies the requirement pyopencv (from versions: 2.0.wr1.0.1-demo, 2.0.wr1.0.1, 2.0.wr1.1.0, 2.1.0.wr1.0.0, 2.1.0.wr1.0.1, 2.1.0.wr1.0.2, 2.1.0.wr1.1.0, 2.1.0.wr1.2.0, 2.1.0.wr1.2.0-demo, 2.1.0.wr1.2.0)
Cleaning up...
No distributions matching the version for pyopencv
Storing complete log in /Users/golmschenk/.pip/pip.log

A semi-related question 有同样的错误,但在不同的情况下。这里的问题似乎与虚拟环境有关,他们使用的是预装的 Python 版本,而不是 Brew 版本。

关于如何解决这个问题有什么建议吗?非常感谢!

更新:

根据this question/solution 出现Could not find a version that satisfies the requirement 错误时,是因为

pip 只会安装 PEP426 指定的稳定版本 默认。如果某个版本无法解析为兼容的 PEP426 版本 那么它被假定为预发布。

这可以使用pip install --pre 安装预发布包来解决。但是,在执行此操作(或尝试使用 easy_install 安装 pyopencv)时,我遇到了错误:ImportError: cannot import name Library

更新 2:

对这个新错误的进一步研究提出this question/solution。这里ImportError: cannot import name Library 来自新版本的setuptools,库位于extension.py 中。这样 pyopencv 应该将库导入为 setuptools.extension.Library 而不是 setuptools.Library。对此的临时解决方案是手动更改它。但是,如果存在手动编辑第三方包的解决方案,我更喜欢更合适的解决方案。有什么建议?谢谢!

更新 3:

如果 OpenCV 和 Python 已通过 Brew 正确安装,您似乎可以通过导入 cv2 模块在 Python 中使用 OpenCV(正如在 cmets 中发现的那样)。这样就解决了我的问题。但是,对于其他可能实际需要 pyopencv 的人,我将保留这个问题。

【问题讨论】:

是否有特殊原因要使用 pyopencv 而不是 cv2?不要试图回避这个问题——我没有直接的解决方案。只是在我有限的经验中,我只有一种情况(带有 OpenCV 1.0 的 Python 3),其中 ctypes_opencv / pyopencv 对我有意义。 哦,看那个。您可以通过导入 cv2 在 Python 中使用 OpenCV,是吗?好吧,那让我的生活更轻松。谢谢!不过,我会留下这个问题,以防其他人需要。 我在 Fedora20 上遇到了完全相同的问题,当使用全新的虚拟环境时,无法“导入 cv2”。并且安装 pyopencv 会导致与您提到的完全相同的错误。现在有点卡住了,但是当我找到解决方案时,我会在这里发布。 对我来说解决方案是这两个链接:***.com/questions/9592389/… 和 github.com/sightmachine/SimpleCV/issues/647 【参考方案1】:

似乎有效的无答案答案:)

import cv2

the docs 中使用“新”类型接口的任何地方都在谈论 C++(python 中的 cv2)接口。

【讨论】:

这对我有用(实际上似乎是更合适的方法)。但是,如果有人提出了指定问题的答案,请将其留在这里,我很乐意接受(尽管这个答案至少值得 +1)。

以上是关于OSX Brew Python“找不到满足 pyopencv 要求的版本”的主要内容,如果未能解决你的问题,请参考以下文章

Mac OSX python多版本管理工具:pyenv 和 virtualenv搭建

Mac OSX python多版本管理工具:pyenv 和 virtualenv搭建

如何为我现有的 python 环境(OSX)设置 Spyder 4

sh OSX的Brew安装脚本

osx brew mysql

Brew无法找到git,即使git in path(Mac / OSX)