我解决了这个问题,希望下面的笔记可以帮助到别人。
首先,我会描述一下当问题发生时我的情况。在我的设备上,我安装了python2.7和python3.6,但我想使用python3.7。因此,我通过apt install安装了它,如下所示:
sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt update
sudo apt install python3.7
由于OpenCV需要python-dev版本,我也通过apt install python-dev进行了安装。不幸的是,这就是问题所在。它与Python3.6绑定。因为我告诉cmake使用Python3.7,所以cmake无法生成所需的opencv包,因为它找不到所需的头文件。
当您运行cmake时,如果看到“安装路径”为空,则可以确定您遇到了我描述的相同问题。例如:
-- Python 3:
-- Interpreter: /usr/bin/python3 (ver 3.7.8)
-- numpy: /usr/local/lib/python3.7/dist-packages/numpy/core/include (ver 1.19.0)
-- install path: -
--
-- Python (for build): /usr/bin/python3
It must show it like this:
-- install path: lib/python3.7/dist-packages/cv2/python-3.7
为了解决这个问题,请卸载python-dev并安装特定于python3.7的版本。例如:
sudo apt-get install python3.7-dev
最终您应该得到一个单独的".so"文件。对我来说,它被放置在以下位置:
/usr/local/lib/python3.7/dist-packages/cv2/python-3.7/cv2.cpython-37m-aarch64-linux-gnu.so
-D PYTHON3_NUMPY_INCLUDE_DIRS=/path_to_python3.5/site-packages/numpy/core/include/ -D PYTHON3_NUMPY_VERSION=1.14.0
- dman