it-swarm.com.de

Wie installiere ich OpenCV3 für Python 3.6 unter Ubuntu 16?

Ich habe versucht, OpenCV von der Quelle zu installieren. Es lässt sich perfekt für python 2.7 und python 3.5 installieren, jedoch nicht für python 3.6.

Ich habe es mit dem folgenden Befehl erstellt:

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

Die Ausgabe zeigt:

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

Und wenn ich make install, wird die OpenCV-Bibliothek im Ordner dist-packages für python3.5, aber nicht für python3.6 vorhanden.

Dies ist im Build-Protokoll:

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

Ich habe alle Compiler-Flags aufgelistet, indem ich Folgendes ausgeführt habe:

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

Unter Verwendung der Flags, die hilfreich aussahen, konstruierte ich Folgendes:

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/ \
      ..

Das hat funktioniert.

1
Morgoth

Nachdem Sie diese Schritte ausgeführt haben, um Python 3.6 auf Ubuntu 16 zu installieren, müssen Sie die folgenden Schritte ausführen, um OpenCV nur für zu kompilieren Python 3.6. Dies wurde für OpenCV 3.4.3 getestet.

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