【发布时间】:2011-04-10 12:53:57
【问题描述】:
使用 MacPorts 安装 OpenCV 似乎不会在任何地方安装 python 绑定。是否包括在内,他们去哪里了?
【问题讨论】:
-
你有没有得到这个与以下任何答案一起工作?
使用 MacPorts 安装 OpenCV 似乎不会在任何地方安装 python 绑定。是否包括在内,他们去哪里了?
【问题讨论】:
您是否为MacPorts port 选择了+python26 变体?
$ sudo port install opencv +python26
【讨论】:
我遇到了同样的问题。似乎已构建并安装了 OpenCV Python 绑定,但未在“站点包”目录中引用它们。我找到了一个解决方案,方法是在 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 的“站点包”目录中创建符号链接。您可以通过在 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,您的设置可能会略有不同;但是,除了路径名之外,一般方法应该是相同的。可能有更好的方法来做到这一点,但这种方法似乎效果很好。
【讨论】:
这应该安装在
/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 在其/opt/local/Library/Frameworks/Python.framework 目录树中安装站点包。
一定要安装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 期望 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
【讨论】: