使用MacPorts安装OpenCV似乎没有在任何地方安装Python绑定。它们是否包含在内?它们应该放到哪里?
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
ln -s /opt/local/@@PYTHON_PKGD@@/cv.so /opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/cv.so
import cv
如果您使用不同版本的Python或OpenCV,那么您的设置可能略有不同;但是,除了路径名之外,一般的方法应该是相同的。可能有更好的方法来做这件事,但这种方法似乎运作良好。
这应该安装在
/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
/opt/local/
之外的任何地方安装任何东西。MacPorts的python2.6将site-packages安装在其/opt/local/Library/Frameworks/Python.framework
目录树中。 - Ned Deily请确保已安装py26-numpy
以支持基本功能,如cv.fromarray
:
sudo port install py26-numpy
OpenCV
可以在没有安装Numpy的情况下进行静默编译(它并不是严格依赖关系)。
sudo port install -v opencv +python26
在那里,您可以检查与NumPy的绑定是否有效。
这是我所做的:
第一步
使用Macports安装opencv。
第二步
将这两个文件放在你的PYTHONPATH
某个地方(例如在你的site-packages
中):
第三步
创建以下软链接(因为cv2.so
期望dylibs在/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