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

4

我正在尝试安装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

一个相关的问题出现了相同的错误,但情况不同。这里的问题似乎是虚拟环境有问题,他们正在使用预安装版本的Python而不是Brew版本。

你有什么建议可以解决这个问题吗?非常感谢!

更新:

根据这个问题/解决方案,当出现Could not find a version that satisfies the requirement错误时,是因为

pip默认只安装符合PEP426规范的稳定版本。如果一个版本不能被解析为符合PEP426版本,则被认为是一个预发布版本。

可以通过使用pip install --pre来安装预发布包来解决此问题。然而,尝试使用此方法进行安装pyopencv(或尝试使用easy_install进行安装)时,会遇到错误:ImportError: cannot import name Library

更新2:

对这个新错误的进一步研究提出了这个问题/解决方案。这里的ImportError: cannot import name Library是由于新版本的setuptools将Library放在了extension.py中。因此,pyopencv应该将Library作为setuptools.extension.Library而不是setuptools.Library导入。一个临时解决方案是手动更改这个问题。但是,如果有更合适的解决方案,我更愿意使用它而不是手动编辑第三方包。你有什么建议吗?谢谢!

更新3:

如果OpenCV和Python通过Brew正确安装,则可以通过导入cv2模块(如评论中发现的那样)在Python中使用OpenCV。所以这解决了我的问题。然而,对于其他可能真正需要pyopencv的人,我会保留这个问题。


1
你想使用pyopencv而不是cv2有特殊原因吗?我并不是在回避这个问题 - 我没有直接的解决方案。只是在我的有限经验中,我只遇到过一种情况(Python 3与OpenCV 1.0),需要使用ctypes_opencv / pyopencv。 - KobeJohn
看这个,你可以通过导入cv2在Python中使用OpenCV,是吗?那么,我的生活就变得更加简单了。谢谢!不过,我会保留这个问题,以防其他人需要它。 - golmschenk
我在使用Fedora20时遇到了完全相同的问题,当使用新的虚拟环境时,无法“import cv2”。安装pyopencv会导致与您提到的完全相同的错误。现在有点卡住了,但是当我找到解决方案时,我会在这里发布。 - Drachenfels
对我来说,解决方案是这两个链接:https://dev59.com/3Gkw5IYBdhLWcg3w2-XH 和 https://github.com/sightmachine/SimpleCV/issues/647 - Drachenfels
1个回答

1

表面上有效的非答案回答 :)

import cv2

文档中使用“new”类型接口的任何地方都是指C++(在Python中为cv2)接口。


这对我来说很有效(而且似乎是更合适的方法)。但是,如果有人给出了按照规定解决问题的答案,请在此留下并且我将很乐意去接受(虽然至少这个回答应该得到+1)。 - golmschenk

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接