我正在尝试安装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的人,我会保留这个问题。