如何修复';导入错误:动态模块未定义模块导出功能(PyInit_cv2)和x27;Python中的错误?
我通过运行如何修复';导入错误:动态模块未定义模块导出功能(PyInit_cv2)和x27;Python中的错误?,python,opencv,import,module,Python,Opencv,Import,Module,我通过运行python main.py(包含import cv2语句)来运行一个关于深度学习的代码,该代码使用opencv模块,但总是得到错误'ImportError:dynamic module不定义模块导出函数(PyInit_cv2) 我试图重新安装我的anaconda并创建新的虚拟环境,但都得到了相同的结果。这个问题真的让我很困惑,我在谷歌上搜索了很多相关的问题,没有一个有效。我认为问题与环境有关,与代码无关,因为我只需在python提示符下运行import cv2,就得到了相同的结果。更
python main.py
(包含import cv2
语句)来运行一个关于深度学习的代码,该代码使用opencv模块,但总是得到错误'ImportError:dynamic module不定义模块导出函数(PyInit_cv2)
我试图重新安装我的anaconda并创建新的虚拟环境,但都得到了相同的结果。这个问题真的让我很困惑,我在谷歌上搜索了很多相关的问题,没有一个有效。我认为问题与环境有关,与代码无关,因为我只需在python提示符下运行import cv2
,就得到了相同的结果。更令人困惑的是,即使在我删除opencv模块之后,我也会遇到同样的问题,但不是ModuleNotFoundError
。有人能给我一些建议吗?非常感谢 类似的帖子,可能会有帮助:
您能否提供有关如何安装CV模块的信息?我遇到了相同的问题,这是由
/usr/local/lib/python2.7/site packages/cv2.so中的cv2.so
文件引起的。在我删除文件并使用命令sudopip3安装opencvpython之后,它对python3有效。我想我找到了这个错误的一个可能原因。
最近,我在一台服务器上配置caffe环境,我下载了opencv-2.4.13的源代码并手动编译,将/usr/local/opencv-2.4.13/build/lib
添加到$PYTHONPATH
,caffe运行良好。之后,当我使用使用python3.5的conda activate py35
进入我的一个虚拟环境时,在python提示符下尝试导入cv2
,得到了上面的错误
我不确定,但我认为错误的原因是opencv-2.4.13编译了一个python2接口,因此它不能被python3导入。Python通过搜索sys.path中列出的目录导入包,其中$PYTHONPATH
位于当前工作目录之后的第二位(这是一篇介绍Python查找包机制的优秀文章)。因此,当我们进入py35环境时,python将首先查找$PYTHONPATH
并查找安装在根目录上的opencv,而不是使用conda install opencv python
在虚拟环境中查找opencv
因此,这个问题有两种解决方案:
$PYTHONPATH
中删除/usr/local/opencv-2.4.13/build/lib
这些都对我有用。我以前读过那篇文章,但它似乎对我不起作用。我尝试了
conda安装opencv
和pip安装opencv-python
,但都返回了相同的错误。