这不是我第一次构建opencv,但是我不知道为什么没有生成cv2.so。我用水蟒,这是我的cmake系列:
cmake -D CMAKE_INSTALL_PREFIX=../output -D PYTHON_EXECUTABLE=/home/b.safwat/anaconda2/envs/opencv3.4/bin/python WITH_FFMPEG=YES -enable-shared --disable-static -D BUILD_NEW_PYTHON_SUPPORT=ON ..
输出没有显示numpy,我怀疑这部分:
^{pr2}$但是,我已经安装了numpy并正常运行。在
有人成功地构建了最新版本吗?他们是否更改了cv2.so
库的名称?在
我在生成Python2.7绑定时遇到了同样的问题。通过手动检查
opencv/CMakeLists.txt
文件找到了解决方案。我认为转移Python3的变量可以解决您的问题。在症状
在开始构建opencv之前,您已经可以通过检查包含}的行中的cmake命令输出来判断是否将获得python绑定文件
To be built
或{cv2.so
。就我而言,我有:注意}如何在结尾处立即显示为不可用。在
python2
和{修复(如果需要,将python2引用改为python3)
在
^{pr2}$CMakeLists.txt
中有一行包含它旁边是一堆生成cmake命令输出的行。它们有助于了解cmake期望的变量。特别是,对numpy的引用对于构建python绑定是必需的。从这些行中,我了解到对于opencv 3.4.1,我必须使用以下命令调用cmake:
我可以从您的命令中看到您使用了不推荐使用的
BUILD_NEW_PYTHON_SUPPORT
标志。对于opencv3.4,标志名已经更改,根据CMakeLists.txt
的内容,新变量名为:我还读到了另一个SO注释,即没有下面的标志(未测试)就不会生成
cv2.so
:TL;DR
对命令的编辑:
-D BUILD_NEW_PYTHON_SUPPORT=ON
-D BUILD_opencv_python3=ON -D BUILD_EXAMPLES=ON -D PYTHON3_NUMPY_INCLUDE_DIRS=<path_to_numpy>/core/include -D PYTHON2_NUMPY_VERSION=<your_numpy_version>
我找到了确切的解决方案here,通过添加以下几行来解决我的问题:
相关问题 更多 >
编程相关推荐