使用OpenCV的MacPorts安装似乎没有在任何地方安装python绑定。它们是否包括在内,它们去哪里了?
答案 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