3

我尝试使用 CMake-gui 为 Ubuntu 14.04 构建带有 python 支持的 opencv 3(也带有 cuda)。

编译似乎工作正常,直到从 Python 控制台:

>>> import cv2
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: No module named cv2

我在没有更改的情况下尝试了启用或禁用 python3。cmakeCache.txt这里。

任何想法来解决这个问题?

4

2 回答 2

4

从昨天开始我遇到了同样的问题,我解决了如下:

  1. 下载 OpenCV 3(beta, rc1) 并安装所有必要的依赖项,包括 Python 开发包。
  2. 打开 Cmake GUI。
  3. 激活分组复选框。
  4. 选择 OpenCV 源和构建目录(或者如果您之前配置过,则只删除缓存)。
  5. 配置。选择您喜欢的发电机。
  6. 选中/取消选中您需要的选项(OpenGL 支持、TBB 等)
    • 如果需要,您可以在每次修改选项后按配置以查看它是否失败。暂时忽略 Python2 选项。
  7. 配置完所有其他选项后,选择 PYTHON2 组并使用Remove entry将其删除。
  8. 配置。PYTHON2 组将以红色重新出现。不要再更改任何内容,只需按Generate即可。

现在您可以按照通常的方式制作/编译。cv2.so 文件将在 build/lib/ 目录中创建。使用 make install 它将为 Python 2 安装。

如果它仍然不起作用,则问题可能出在其他地方。在第 8 步之后,cmake 输出必须包含以下行(在您的情况下,实际路径可能不同):

Python 2:
    Interpreter:                 /usr/bin/python2.7 (ver 2.7.6)
    Libraries:                   /usr/lib/i386-linux-gnu/libpython2.7.so (ver 2.7.6)
    numpy:                       /usr/lib/python2.7/dist-packages/numpy/core/include (ver 1.8.2)
    packages path:               lib/python2.7/dist-packages

在任何情况下都不能有一行说“不”,例如:

Python 2:
    Interpreter:                 /usr/bin/python2.7 (ver 2.7.6)
    Libraries:                   NO
    numpy:                       /usr/lib/python2.7/dist-packages/numpy/core/include (ver 1.8.2)
    packages path:               lib/python2.7/dist-packages

希望这可以帮助。

于 2015-05-31T10:48:34.127 回答
1

如果它编译得很好,那么探针不是使用 cmake 或设置构建选项的方式。问题看起来也不在于 python2 或 3,而是你安装 OpenCV 的方式。编译 OpenCV 后,您必须将 opencv python 模块移动到 /usr/local/lib ,否则 python 将无法看到它们。

于 2014-11-24T22:26:18.967 回答