Привязки SWIG Python для OpenCV 2.0 с MacPorts

Все,

В течение 3 дней я пытался добиться привязки OpenCV Python, и у меня есть (полная эпическая борьба задокументировано здесь), но, несмотря на включение флага SWIG в CMake после установки swig через macports, я не получаю никаких действий 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-транка.


person CpILL    schedule 07.01.2010    source источник


Ответы (2)


Кажется, что флаги 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" win Python, я продолжал получать следующую ошибку:

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

это потому, что компилятор darwin по умолчанию использует системную версию python. Я последовал некоторым советам и обнаружил, что это работает как шарм:

sudo chmod 000 /System/Library/Frameworks/Python.framework/
cmake ...
sudo chmod 755 /System/Library/Frameworks/Python.framework/
person CpILL    schedule 08.01.2010

Если вы согласны с более новыми (не SWIG) привязками, которые в любом случае лучше, вы можете просто установить напрямую через MacPorts:

sudo port install opencv +python26

or

sudo port install opencv +python27

по мере необходимости.

См. также Как установить OpenCV для python

person Josh Bleecher Snyder    schedule 14.12.2010
comment
похоже, что привязки python являются вариантом - нужен ли + python26? - person Peter Gibson; 15.12.2010