Python 3.5 ImportError:动态模块没有定义模块导出函数(PyInit_cv2)

新手上路,请多包涵

这就是我尝试将 cv2 导入 python3.5 IDLE 时得到的结果。我正在使用 OpenCV 3.1.0 Python3.5.2 Ubuntu 16.04

我尝试了很多安装方法,但没有人解决我的问题,我在终端上导入工作,但它也停止了。有人可能有解决方案吗?

 import cv2
Traceback (most recent call last):
  File "<pyshell#0>", line 1, in <module>
    import cv2
ImportError: dynamic module does not define module export function (PyInit_cv2)

编辑:我遵循了此链接上的教程:

http://docs.opencv.org/3.0-last-rst/doc/tutorials/introduction/linux_install/linux_install.html

http://www.pyimagesearch.com/2015/07/20/install-opencv-3-0-and-python-3-4-on-ubuntu/

原文由 Carlos Henrique 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 703
1 个回答

我安装了其他版本的OpenCV后出现了这个问题(由于各种原因,其中之一安装了ROS,它有自己的OpenCV版本)。看来这引起了冲突。为确保正确加载 PyOpenCV,请进入交互式会话并检查:

 import sys
print(sys.path)

您也可以在 IDLE 中尝试。

cv2.cpython-35m-x86_64-linux-gnu.so 的路径应该出现在那里。如果没有,将其插入路径:

 sys.path.insert(1, '<path to .../dist-packages with cpython so>')

确保它位于可能导致冲突的任何其他选项之前。然后重试:

 import cv2

它现在应该可以工作,这意味着问题出在 python 路径上。它还可能有助于找出导致您的案例发生冲突的原因以及如何最好地为您解决问题。

原文由 Blackzafiro 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题