2014-02-09 3 views
1

Я пытаюсь установить OpenCV для использования с Python. Первая установка прошла отлично; однако, я отсутствовал файл cv2.so. Затем я добавил -D BUILD_NEW_PYTHON_SUPPORT=ON в надежде, что он создаст для меня файл cv2.so.Установка OpenCV с поддержкой Python на Heroku

Полная команда:

cmake -D CMAKE_INSTALL_PREFIX=${target} -D CMAKE_FIND_ROOT_PATH=${target} -D CMAKE_BUILD_TYPE=RELEASE -D BUILD_NEW_PYTHON_SUPPORT=ON -D BUILD_SHARED_LIBS=OFF -D CMAKE_SHARED_LINKER_FLAGS="-fPIC" .. 

Около 92%, OpenCV терпит неудачу со следующим:

Scanning dependencies of target opencv_python 
    [ 92%] Building CXX object modules/python/CMakeFiles/opencv_python.dir/src2/cv2.cpp.o 
    Linking CXX shared library ../../lib/cv2.so 
/usr/bin/ld: /usr/local/lib/libpython2.7.a(abstract.o): relocation R_X86_64_32 against `.rodata.str1.8' can not be used when making a shared object; recompile with -fPIC 
/usr/local/lib/libpython2.7.a: could not read symbols: Bad value 
collect2: ld returned 1 exit status 
make[2]: *** [lib/cv2.so] Error 1 
make[1]: *** [modules/python/CMakeFiles/opencv_python.dir/all] Error 2 
make: *** [all] Error 2 
ERROR: Build failed, exited 2 

Запуск версии по умолчанию Python 2.7.6, что Heroku устанавливает. Я столкнулся с несколькими сообщениями, которые указывают на необходимость python-dev, но похоже, что заголовки dev уже есть (Screenshot).

Я использую обычай buildpack, если это поможет.

+0

Связанные проблемы с возможными рабочими решениями: [«Heroku и OpenCV с Python»] (http://stackoverflow.com/q/19879663/2419207), [«Ошибка компоновщика Python OpenCV»] (http: // stackoverflow. com/q/20622583/2419207), [«Как установить python opencv на Heroku?»] (http://stackoverflow.com/q/16949224/2419207) – iljau

ответ

2

По-видимому, Python необходимо скомпилировать с флагом --enable-shared, прошедшим так, чтобы были созданы libpython2.7.so и libpython2.7.so.1.0. OpenCV с модулем Python требует libpython2.7.so.

Чтобы исправить, компилировать питона из источника, так как:

./configure --enable-shared 
make 
make install 

Убедитесь, что пройти на флаге -D BUILD_NEW_PYTHON_SUPPORT=ON CMake при компиляции OpenCV.

Смежные вопросы