OpenCV MacPort Python绑定

7
使用MacPorts安装OpenCV似乎没有在任何地方安装Python绑定。它们是否包含在内?它们应该放到哪里?

1
你是否曾经尝试过使用以下任何答案来解决这个问题? - user122299
5个回答

10

你是否已选择了 MacPorts端口 中的+python26变量?

$ sudo port install opencv +python26

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,那么您的设置可能略有不同;但是,除了路径名之外,一般的方法应该是相同的。可能有更好的方法来做这件事,但这种方法似乎运作良好。


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


不太可能。除了一些例外情况,MacPorts非常注意不要在其默认根目录/opt/local/之外的任何地方安装任何东西。MacPorts的python2.6将site-packages安装在其/opt/local/Library/Frameworks/Python.framework目录树中。 - Ned Deily

1

请确保已安装py26-numpy以支持基本功能,如cv.fromarray

sudo port install py26-numpy

OpenCV可以在没有安装Numpy的情况下进行静默编译(它并不是严格依赖关系)。

sudo port install -v opencv +python26

在那里,您可以检查与NumPy的绑定是否有效。


-1

这是我所做的:

第一步

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接