我正在尝试让 opencv 在 Ubuntu 16.04 上与 Python3.5 一起工作
我已按照此答案中的步骤操作: 如何在 Ubuntu 16.04 LTS 上为 Python 3.5 安装 OpenCV 3.1?
以及其中的链接。我还必须安装一些其他依赖项。
我的第一个问题是 cmake 一直找到 Python3.4 而不是 Python3.5。
-- Python 2:
-- Interpreter: /usr/bin/python2.7 (ver 2.7.11)
-- Libraries: /usr/lib/x86_64-linux-gnu/libpython2.7.so (ver 2.7.11+)
-- numpy: /usr/local/lib/python2.7/dist-packages/numpy/core/include (ver 1.11.1)
-- packages path: lib/python2.7/dist-packages
--
-- Python 3:
-- Interpreter: /usr/bin/python3.4 (ver 3.4)
--
还提到了一些其他缺失的依赖项。我不知道它们有多重要。例如 Matlab:
-- Matlab: Matlab not found or implicitly disabled
还有 gtk+-3.0,尽管我以为我已经安装了它:
-- Checking for module 'gtk+-3.0'
-- No package 'gtk+-3.0' found
以及其他一些:
-- VTK is not found. Please set -DVTK_DIR in CMake to VTK build directory, or to VTK install subdirectory with VTKConfig.cmake file
-- Looking for linux/videodev.h
-- Looking for linux/videodev.h - not found
-- Looking for linux/videodev2.h
-- Looking for linux/videodev2.h - found
-- Looking for sys/videoio.h
-- Looking for sys/videoio.h - not found
-- Checking for module 'libavresample'
-- No package 'libavresample' found
我执行了 grep / sed 命令将 python3.4 修改为 3.5,并尝试了 make 和 make install,但仍然没有出现。
答案1
对所有这些问题的详细回答将占用太多的空间和精力,还需要有关每个包的附加信息。
但总的来说,策略是:
如果找不到包,请先确保您有它。例如,使用 检查
dpkg -l "*libXXX*"
。如果python
,请使用 命令检查系统选择了哪个 pythonwhich python3
。这并不意味着会找到同一个cmake
(cmake
可以使用不同的搜索目录顺序),但很有可能。如果您有它,但它不在标准路径中,只是没有找到或找到了不同的版本,您通常需要
a)设置一些环境变量
或者 b) 修改在源
findXXX.cmake
的“cmake”文件夹中找到的脚本OpenCV
或 c) 修改 OpenCV
CMakeLists.txt
文件以手动设置所需的Cmake
变量(findXXX
通常会设置)。上述操作比较简单
cmake-qt-gui
(如果没有,请安装)。然后当它发现错误时python
,您只需使用 GUI 输入正确的路径即可。Matlab/VTK not found
这不是一场灾难。您可以使用许多可选包进行构建。除非cmake
实际上说,无法构建您需要的 OpenCV 模块没有它,或者除非你真的想要使用这个包(例如出于性能原因),您无需执行任何操作。哪些 OpenCV 模块需要哪些包以及使用某些可选包的优点是什么,您需要针对每个包单独找出答案。但是如果您想使用 Matlab 或 VTK 进行构建,则需要确保 cmake 能够找到它。因此,请阅读要点 1.、2.、3。