【问题标题】:How to install Python 2.7 bindings for OpenCV using MacPorts如何使用 MacPorts 为 OpenCV 安装 Python 2.7 绑定
【发布时间】:2012-01-14 16:14:27
【问题描述】:

当尝试在 python 中“导入 cv”时,我得到:“ImportError:没有名为 cv 的模块”。这个问题以多种形式出现,但我没有找到有用的答案。

在我的 Mac OS X Lion 以及许多其他端口上,我运行过:

sudo port install python27

sudo port install opencv +python27

跑步:

port select python

我看到:“python27(主动)”

并运行:

port installed opencv

我看到了:“opencv @2.3.1a_1+python27(主动)”

我还应该检查什么?谢谢。

【问题讨论】:

  • 我应该在/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/ 中找到 cv.so 吗?它不存在...

标签: python opencv osx-lion macports


【解决方案1】:

我遇到了同样的问题。它看起来像 2.3.1a 的 OpenCV 安装脚本的一个(也许?)错误。除非已安装 NumPy,否则它不会创建 Python 绑定。

修复它:

sudo port uninstall opencv
sudo port install py27-numpy
sudo port install opencv +python27

这对我有用!我通过谷歌搜索找到了这个,正确的答案在这里: wbarczynski.org/wp/2011/11/25/opencv-with-py-bindings-on-mac-with-macports-intall-numpy-first/

【讨论】:

  • 非常感谢;这行得通!特别是我跑了:sudo port uninstall opencv @2.3.1a_1+python27sudo port uninstall opencv @2.3.1a_1sudo port install py27-numpysudo port install opencv +python27
  • 然后我可以在 python 中运行import cv
  • 我做了端口安装 py27-numpy
  • 这也对我有用。对我来说,我之前使用 macports 和 pip 安装了 numpy。所以这可能是导致问题的原因。所以我用 pip 卸载了 numpy。然后按照建议做了,一切正常。谢谢。
  • 有趣。 @pyan,它对我有用(1)使用 pip 安装 numpy 和 cv2,(2)使用 Python 2.7 绑定安装 opencv 3.1。我不必用 MacPorts 替换基于 pip 的 numpy。
【解决方案2】:

第一步

使用 Macports 安装 opencv。

第二步

将这两个文件放在您的PYTHONPATH 上的某个位置(例如在您的site-packages 中):

第三步

创建以下软链接(因为 cv2.so 期望 dylib 位于 /usr/local 但 MacPorts 安装到 /opt/local):

cd /usr/local/lib/
ln -s /opt/local/lib/libopencv_core.2.3.dylib libopencv_core.2.3.dylib
ln -s /opt/local/lib/libopencv_flann.2.3.dylib libopencv_flann.2.3.dylib
ln -s /opt/local/lib/libopencv_imgproc.2.3.dylib libopencv_imgproc.2.3.dylib
ln -s /opt/local/lib/libopencv_video.2.3.dylib libopencv_video.2.3.dylib
ln -s /opt/local/lib/libopencv_ml.2.3.dylib libopencv_ml.2.3.dylib
ln -s /opt/local/lib/libopencv_features2d.2.3.dylib libopencv_features2d.2.3.dylib
ln -s /opt/local/lib/libopencv_highgui.2.3.dylib libopencv_highgui.2.3.dylib
ln -s /opt/local/lib/libopencv_calib3d.2.3.dylib libopencv_calib3d.2.3.dylib
ln -s /opt/local/lib/libopencv_objdetect.2.3.dylib libopencv_objdetect.2.3.dylib
ln -s /opt/local/lib/libopencv_legacy.2.3.dylib libopencv_legacy.2.3.dylib
ln -s /opt/local/lib/libopencv_contrib.2.3.dylib libopencv_contrib.2.3.dylib

【讨论】:

  • 我确实不需要需要执行第二步和第三步才能使 python 绑定正常工作。谢谢。
  • 嗯。我想知道为什么我的环境需要这样做。肯定是一些先前安装的一些冲突。
  • 我按照您上面的建议进行操作,但没有收到 ImportError。不幸的是,opencv 模块失败(进程以退出代码 139 结束)。
  • 我试了一下: import cv2 except ImportError: print "cv2 is not installed" exit() print "看起来它已安装" exit() 但它因错误 139 而崩溃,没有给出任何输出无论如何。
【解决方案3】:

我想知道你是否将 opencv 安装到 Python 的 OSX 版本而不是 macports。

你试过easy install吗,我一般都是用easy_install来安装包的。

/opt/local/bin/easy_install-2.7 opencv

【讨论】:

  • 我确实在 /opt/local/lib 中看到了所有 libopencv_*.dylib 文件,我相信这是 MacPorts 安装它们的地方。使用您的建议进行安装会覆盖 MacPorts 安装还是与安装冲突? easy_install 会包含 python 绑定吗?谢谢。
  • 所以它是你的选择,选择你想要使用的 python 版本。我使用 MacPorts 安装。关于 python 绑定,我在安装后使用任何包都没有任何问题,如上所述。
  • 到目前为止,我只使用过 MacPorts。我确实尝试过sudo /opt/local/bin/easy_install-2.7 opencv,但出现错误:Searching for opencv Reading http://pypi.python.org/simple/opencv/ Couldn't find index page for 'opencv' (maybe misspelled?) Scanning index of all packages (this may take a while) Reading http://pypi.python.org/simple/ No local packages or download links found for opencv error: Could not find suitable distribution for Requirement.parse('opencv')
猜你喜欢
  • 1970-01-01
  • 2018-06-26
  • 2017-02-28
  • 2011-06-10
  • 2011-01-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多