我使用扩展SD卡(BeagleBone Black)在Debian系统中使用python2.7
编译了OpenCV 3.0.0。
安装OpenCV后,似乎没有错误。 ' Lib'中有许多生成的文件。文件夹中。
这些文件的名称如下:
libopencv_core.so
libopencv_dataset.so
libopencv_imgproc.so ...
我找不到文件cv2.so
,甚至搜索整个文件系统。
我已多次尝试过,但找不到cv2.so
。
谁知道原因?感谢。
make
配置已检查,似乎正确无误:
sudo cmake -D CMAKE_BUILD_TYPE=RELEASE \
-D CMAKE_INSTALL_PREFIX=/usr/local -D
答案 0 :(得分:4)
确保安装了numpy。没有numpy,cmake会说
-- Python 2:
-- Interpreter: /usr/bin/python2.7 (ver 2.7.12)
-- Libraries: NO
-- numpy: NO (Python wrappers can not be generated)
-- packages path: lib/python2.7/dist-packages
安装numpy,它会说:
-- Python 2:
-- Interpreter: /usr/bin/python2.7 (ver 2.7.12)
-- Libraries: /usr/lib64/libpython2.7.so (ver 2.7.12)
-- numpy: /usr/local/lib/python2.7/dist-packages/numpy/core/include (ver 1.12.1)
-- packages path: lib/python2.7/dist-packages
答案 1 :(得分:3)
检查你的cmake变量是否包含:
-D BUILD_NEW_PYTHON_SUPPORT=ON
-D BUILD_PYTHON_SUPPORT=ON
或
检查cmake是否显示消息:
variables were not used by the project:
BUILD_NEW_PYTHON_SUPPORT
BUILD_PYTHON_SUPPORT
如果这两个变量都没有使用,opencv将不会生成cv2.so,意味着即使构建成功(没有错误消息),python模块也无法使用。
我不知道为什么在python环境没问题的时候发生了这些事情。
答案 2 :(得分:3)
对我来说,解决方案如下:
将以下标志(如果它们丢失)添加到构建命令中(如果系统上的路径不同,则可能需要更改路径):
autoInvalidate <- reactiveTimer(120000)
对我有用的整个构建命令是:
-D PYTHON_INCLUDE_DIR=/usr/include/python2.7
-D PYTHON_LIBRARY=/usr/lib/python2.7/config-x86_64-linux-gnu/libpython2.7.so
答案 3 :(得分:0)
我想您可能会尝试在下载的OpenCV目录中找到cv2.so
。
我遇到了同样的问题,最后在
中找到了 dir = "./myopencv/opencv/build/lib"
。
当我尝试解决问题时,我发现cv2.so
可能是某些.so
文件的集合。好像您的版本匹配,即使您从其他计算机上获取它也没问题。
答案 4 :(得分:0)
在较新版本的opencv中,将cv2.so文件重命名为类似 cv2.build_information.so 的名称。因此,您有可能正在寻找错误的文件名。
因此,在使用python解释器构建opencv之后,请在 build / lib 内部检查相应的文件名。就我而言,cv2.so重命名为cv2.cpython-37m-x86_64-linux-gnu.so
build/lib/python3/
└── cv2.cpython-37m-x86_64-linux-gnu.so
答案 5 :(得分:0)
我解决了问题,希望以下说明对某人有所帮助。
我将首先描述问题发生时的情况。在我的设备上,我安装了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
它必须这样显示:
-- 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