Как установить OpenCV3 для Python 3.6 на Ubuntu 16?

Я попытался установить OpenCV из источника. Это устанавливает отлично для python 2.7 и python 3.5, но не устанавливает для python 3.6.

Я создал его с помощью следующей команды:

cmake -D CMAKE_BUILD_TYPE=RELEASE \
      -D CMAKE_INSTALL_PREFIX=/usr/local \
      -D PYTHON_EXECUTABLE=/usr/bin/python3.6 ..

Выходные шоу:

--   Python 3:
--     Interpreter:                 /usr/bin/python3 (ver 3.5.2)
--     Libraries:                   /usr/lib/x86_64-linux-gnu/libpython3.5m.so (ver 3.5.2)
--     numpy:                       /home/courts/.local/lib/python3.5/site-packages/numpy/core/include (ver 1.12.0)
--     packages path:               lib/python3.5/dist-packages
-- 
--   Python (for build):            /usr/bin/python3

И когда я make install библиотека OpenCV становится существующей в папке dist-пакетов для python3.5, но не python3.6.

Это находится в журнале сборки:

-- Found PythonInterp: /usr/bin/python3.6 (found suitable version "3.6.2", minimum required is "2.7") 
-- Found PythonInterp: /usr/bin/python3 (found suitable version "3.5.2", minimum required is "3.4") 
-- Found PythonLibs: /usr/lib/x86_64-linux-gnu/libpython3.5m.so (found suitable exact version "3.5.2") 
2
задан 25 October 2018 в 18:34

2 ответа

Я перечислил все флаги компилятора путем выполнения:

cmake -L | awk '{if(f)print} /-- Cache values/{f=1}'

Используя флаги, которые выглядели полезными, я создал это:

cmake -D CMAKE_BUILD_TYPE=RELEASE \
      -D CMAKE_INSTALL_PREFIX=/usr/local/ \
      -D PYTHON_EXECUTABLE=/usr/bin/python3.6 \
      -D PYTHON_INCLUDE=/usr/include/python3.6/ \
      -D PYTHON_LIBRARY=/usr/lib/python3.6/ \
      -D PYTHON_PACKAGES_PATH=/usr/local/lib/python3.6/dist-packages/ \
      -D PYTHON_NUMPY_INCLUDE_DIR=/usr/local/lib/python3.6/dist-packages/numpy/core/include/ \
      ..

Это работало.

1
ответ дан 2 December 2019 в 04:44

После выполнения этих шагов сначала для установки Python 3.6 на Ubuntu 16 необходимо будет сделать следующее для получения OpenCV, скомпилированного только для Python 3.6. Это было протестировано на OpenCV 3.4.3.

curl -L https://github.com/opencv/opencv/archive/3.4.3.zip -o opencv.zip
curl -L https://github.com/opencv/opencv_contrib/archive/3.4.3.zip -o opencvContrib.zip
unzip -q opencvContrib.zip
unzip -q opencv.zip && cd opencv-3.4.3/ && mkdir build && cd build
cmake .. -DCMAKE_BUILD_TYPE=RELEASE \
        -DBUILD_opencv_python3=yes \
        -DCMAKE_INSTALL_PREFIX=/usr/local/ \
        -DOPENCV_EXTRA_MODULES_PATH=../../opencv_contrib-3.4.3/modules \
        -DPYTHON3_EXECUTABLE=/usr/bin/python3.6 \
        -DPYTHON3_INCLUDE=/usr/include/python3.6/ \
        -DPYTHON3_INCLUDE_DIR=/usr/include/python3.6m \
        -DPYTHON3_LIBRARY=/usr/lib/python3.6/config-3.6m-x86_64-linux-gnu/libpython3.6.so \
        -DPYTHON3_PACKAGES_PATH=/usr/local/lib/python3.6/dist-packages/ \
        -DPYTHON_NUMPY_INCLUDE_DIR=/usr/local/lib/python3.6/dist-packageis/numpy/core/ \
        -DBUILD_NEW_PYTHON_SUPPORT=ON 
make -j 4 && make install && cd / && rm opencv.zip && rm opencvContrib.zip && rm -rf opencv-3.4.3/
0
ответ дан 2 December 2019 в 04:44

Другие вопросы по тегам:

Похожие вопросы: