web-dev-qa-db-ja.com

Ubuntu 16でPython 3.6にOpenCV3をインストールする方法は?

ソースから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ライブラリはpython3.5ではなくpython-3.6のdist-packagesフォルダーに存在します。

これはビルドログにあります。

-- 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
Morgoth

以下を実行して、すべてのコンパイラフラグをリストしました。

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
Morgoth

UbuntuにPython 3.6を最初にインストールする これらの手順 を実行した後、OpenCVをコンパイルするには以下を実行する必要がありますonlyPython 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
Amir