使用MacPorts的OpenCV 2.0的SWIG Python绑定

时间:2010-01-07 12:30:24

标签: python opencv cmake swig macports

你们说

我已经连续3天试图让OpenCV Python绑定发生,而我(完全史诗般的奋斗是documented here)但是尽管在通过macports安装swig之后在CMake中打开了SWIG标志,我没有得到任何SWIG行动:(

我的cmake命令如下:

cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/opt/local -D BUILD_PYTHON_SUPPORT=ON -D BUILD_SWIG_PYTHON_SUPPORT=ON -D BUILD_NEW_PYTHON_SUPPORT=ON -D BUILD_EXAMPLES=ON -D BUILD_TESTS=ON -D PYTHON_INCLUDE_DIR=/opt/local/Library/Frameworks/Headers -D INSTALL_PYTHON_EXAMPLES=ON -D BUILD_SWIG_PYTHON_SUPPORT=ON -D CMAKE_CXX_COMPILER=/usr/bin/g++-4.2 -D CMAKE_C_COMPILER=/usr/bin/gcc-4.2 ..

引发了这个错误:

-- Looking for libavformat/avformat.h
-- Looking for libavformat/avformat.h - not found
-- Looking for ffmpeg/avformat.h
-- Looking for ffmpeg/avformat.h - not found

所以我猜它找不到我所拥有的那个:

/opt/local/include/libavformat/avformat.h

我该怎么说呢?有点像

-D CMAKE_CXX_FLAGS="-I/opt/local/include" -D CMAKE_SHARED_LINKER_FLAGS="-L/opt/local/lib"

???

我正在使用OSX 10.5.8,Python 2.6通过Macports并编译最新的OpenCV-trunk。

2 个答案:

答案 0 :(得分:0)

似乎cmake标志没有太大的区别。我变得系统化并将它们减少到最低限度:

cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/opt/local -D BUILD_PYTHON_SUPPORT=ON -D BUILD_SWIG_PYTHON_SUPPORT=OFF -D BUILD_NEW_PYTHON_SUPPORT=ON -D PYTHON_INCLUDE_DIR=/opt/local/Library/Frameworks/Python.framework/Headers -D CMAKE_CXX_COMPILER=/usr/bin/g++-4.2 -D CMAKE_C_COMPILER=/usr/bin/gcc-4.2 -D BUILD_SWIG_PYTHON_SUPPORT=ON ..

我设法编译了所有内容,但是当我厌倦了“导入cv”赢得Python时,我不断收到以下错误:

Fatal Python error: Interpreter not initialized (version mismatch?)

这是因为darwin上的编译器默认使用python的系统版本。我跟着some advice发现这就像一个魅力:

sudo chmod 000 /System/Library/Frameworks/Python.framework/
cmake ...
sudo chmod 755 /System/Library/Frameworks/Python.framework/

答案 1 :(得分:0)

如果你对新的(非SWIG)绑定没问题,那么无论如何都可以更好,你可以直接通过MacPorts安装:

sudo port install opencv +python26

sudo port install opencv +python27

酌情。

另见How to install OpenCV for python