我需要從源代碼構建 OpenCV 并且空間有限,因此,我必須基于模塊構建 OpenCV(https://docs.opencv.org/4.x/db/d05/tutorial_config_reference.html - 構建有限集模塊)。好的,cmake 并使作業正常。
從 python 中使用這些 OpenCV 模塊會更容易,所以我添加cmake -D BUILD_opencv_python3=ON但make install不創建prefix/lib/pythonX.Y/site-packages我期望的目錄。沒有與 python 相關的選項,但據我了解檔案只有一個 CMake 選項。
在模塊基礎上構建 OpenCV 時如何獲取 python(3) 系結?安裝后,如何設定環境以python -c "import cv2"使用我定制的 OpenCV 作業?
更新
在 jetson 上運行 ubuntu L4T。CMake 輸出:
-- Python 3:
-- Interpreter: /usr/bin/python3 (ver 3.6.9)
-- Libraries: NO
-- numpy: /home/me/.local/lib/python3.6/site-packages/numpy/core/include (ver 1.19.5)
-- install path: -
所以我猜空安裝路徑隱藏了一個問題......但grep -ni OPENCV_PYTHON3_INSTALL_PATH CMakeCache.txt什么都不回傳。
此時,我嘗試cmake -DOPENCV_PYTHON3_INSTALL_PATH=~/Programs/opencv/local/lib/python3.6/site-packages/在 cmake 輸出(空白安裝路徑)中添加,但仍然沒有任何內容
grep -ni OPENCV_PYTHON3_INSTALL_PATH CMakeCache.txt
1076:OPENCV_PYTHON3_INSTALL_PATH:UNINITIALIZED=~/Programs/opencv/local/lib/python3.6/site-packages/
之后make install(沒有 sudo - 我沒有 root 權限并且需要本地安裝),我在本地安裝中沒有 python 系結。
...任何線索將不勝感激!
注意:在L4T ubuntu上編譯opencv-4.5.4
uj5u.com熱心網友回復:
要進行 py 系結,請確保靠近末尾的 cmake 配置輸出包含以下Python 3部分,即
Python 3:
Interpreter: /home/user/anaconda3/envs/cv451/bin/python3 (ver 3.8.12)
Libraries: /home/user/anaconda3/envs/cv451/lib/libpython3.8.so (ver 3.8.12)
numpy: /home/user/anaconda3/envs/cv451/lib/python3.8/site-packages/numpy/core/include (ver 1.21.2)
install path: /home/user/anaconda3/envs/cv451/lib/python3.8/site-packages/cv2/python-3.8
對我來說,那部分起初是缺失的。我的問題是 lib(從系統中找到)和解釋器(來自 conda env)之間的 python 版本不匹配。
因此,在我的情況下,修復是:
- 讓 cmake 找到 conda env 的 python 而不是系統的 python:
CMAKE_LIBRARY_PATH=/home/user/anaconda3/envs/cv451/lib cmake /path/to/opencv/arc
- 默認情況下,系結安裝到系統的python。要指定 python 系結安裝路徑,請使用 cmake 標志
OPENCV_PYTHON3_INSTALL_PATH即
-D OPENCV_PYTHON3_INSTALL_PATH=/home/user/anaconda3/envs/cv451/lib/python3.8/site-packages/
- 編譯后記得安裝
sudo make install
參考:
- https://gist.github.com/raulqf/f42c718a658cddc16f9df07ecc627be7
- https://qengineering.eu/install-opencv-4.5-on-jetson-nano.html
uj5u.com熱心網友回復:
cmake -DBUILD_LIST=python3 .. 解決了問題:獲取干凈的安裝目錄,包括 python site-packages 目錄。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/387286.html
