opencv macport python绑定

时间:2010-09-10 00:22:23

标签: python opencv macports

使用OpenCV的MacPorts安装似乎没有在任何地方安装python绑定。它们是否包括在内,它们去哪里了?

5 个答案:

答案 0 :(得分:10)

您是否为MacPorts port选择了+ python26变体?

$ sudo port install opencv +python26

答案 1 :(得分:7)

我遇到了同样的问题。似乎构建并安装了OpenCV Python绑定,但它们未在“site-packages”目录中引用。我通过在MacPorts安装的Python包的“site-packages”目录中添加了一个符号链接到已构建的“cv.so”文件,找到了解决方案。这些说明在使用Mac OS 10.6.6的设置上进行测试。主题MacPorts包是“python27”和“opencv”。

为了确保Python绑定实际上在您的驱动器上,您需要确保使用python变量调用opencv包:

sudo port install opencv +python27

“cv.so”共享对象文件将构建在以下目录中:

/opt/local/@@PYTHON_PKGD@@

有必要在Python的“site-packages”目录中创建一个符号链接。您可以通过在Python解释器中执行以下命令来找到此目录的路径:

from distutils.sysconfig import get_python_lib
print get_python_lib()

返回的路径应类似于以下内容:

/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages

在此目录中创建指向共享对象(“cv.so”)的符号链接:

ln -s /opt/local/@@PYTHON_PKGD@@/cv.so /opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/cv.so

现在您应该能够在解释器中导入cv模块:

import cv

如果您使用的是不同版本的Python或OpenCV,您的设置可能会略有不同;但是,除路径名外,一般方法应该相同。可能有更好的方法来做到这一点,但这种方法似乎运作良好。

答案 2 :(得分:1)

这应该安装在

/Library/Python/2.6/site-packages

如果你使用sudo port install ..

目录2.6,2.5 ..将取决于路径上的python版本。

谢谢Ned,纠正上述内容 - 这些是mac os x发行版。

Macports确实把所有东西放在:

/opt/local/Library/Frameworks/Python.framework/Versions/Current/lib/python2.6/site-packages

答案 3 :(得分:1)

请务必安装py26-numpy以支持cv.fromarray等基本功能:

sudo port install py26-numpy

opencv将在没有numpy的情况下进行静默编译(它不是严格依赖项)。

sudo port install -v opencv +python26

你可以检查对numpy的绑定是否有效。

答案 4 :(得分:-1)

以下是我必须做的事情:

第一步

使用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