ImportError:没有名为 cv2 的模块

Posted

技术标签:

【中文标题】ImportError:没有名为 cv2 的模块【英文标题】:ImportError: No module named cv2 【发布时间】:2015-05-20 19:52:30 【问题描述】:

过去一天我一直在努力解决这个错误,我在整个互联网上查找了错误消息,但仍然无法弄清楚如何解决这个错误。

我的桌面上有 OpenCV 和 cv2 设置,但我现在需要在笔记本电脑上编程(出于移动原因)。不幸的是,即使我下载了 OpenCV,当我尝试导入 cv2 时,它也会给我错误消息“ImportError: No module named cv2”。

到目前为止,我得到的最接近的是“locate cv2”,它给了我“/usr/lib/python2.7/dist-packages/cv2.so”。然后我进入python shell并运行“import sys”然后运行“sys.path.append('/usr/lib/python2.7/dist-packages')”,然后当我问“'/usr”时给我一个True /lib/python2.7/dist-packages' 在 sys.path"。但是,当我尝试导入 cv2 时,它现在返回一条新的错误消息“ImportError: numpy.core.multiarray failed to import”。我尝试解决此错误,但我也没有运气。

我已经在网上论坛和留言板上尝试了所有方法,但不知道如何解决这个问题。任何帮助将不胜感激,因为我需要在本周末之前完成此计划。

【问题讨论】:

什么操作系统?也许你安装了 python 3 的版本,但你使用的是 python 2,或者相反? 你的笔记本电脑上安装了 numpy 吗? @Marcin:我正在运行 Ubuntu 14.04。当我执行“python --version”时,它返回 python 2.7.9。但是,当我进入“/usr/lib/”时,我同时看到了 Python2.7、Python3 和 Python3.4。 @Mailerdaimon 我相信是这样,但我不知道如何检查。 【参考方案1】:

您缺少 NumPy,它可以通过多种方式之一安装。以下是一些可能性,按(我个人)偏好的顺序列出:

1) 在 vi​​rtualenv 中。请参阅 https://***.com/a/19213369/1510289 了解如何执行此操作。

2) 系统范围,如果您安装了 pip:

pip install numpy

3) 系统范围内,使用您的包管理器。例如在 Ubuntu 上:

apt-get install python-numpy

或在 YUM 系统上,例如 Fedora:

yum install numpy

【讨论】:

我已经尝试过 2 和 3。2 返回“要求已经满足(使用 --upgrade 升级):numpy in /usr/lib/python2.7/dist-packages” 3 返回“0已升级,0 个新安装,0 个要删除,10 个未升级。”基于此,我认为这意味着 numpy 已经在系统范围内安装。我可以尝试 virtualenv,但我更喜欢在系统范围内使用它。 听起来你的 NumPy 版本已经过时了。尝试按照它说的去做:对于 2) 尝试 pip install --upgrade numpy,对于 3) 尝试 apt-get update; apt-get upgrade 我刚刚对 2 和 3 做了你的两个建议。现在,当我尝试在 python shell 中导入 numpy 时,它返回“导入错误:/usr/lib/python2.7/dist-packages /numpy/core/multiarray.so:未定义符号:PyUnicodeUCS4_AsUnicodeEscapeString"。 听起来你混合了不同版本的 numpy,一个安装了pip,另一个安装了apt-get。让我们尝试通过只关注方法#3 并忘记方法#2 来解决这个问题。因此,首先删除您使用 pip 安装的那个:pip uninstall numpy,然后尝试从 python shell 导入模块。 我试过了,但没有用。但是,我只按照这些说明卸载了 Ubuntu 并进行了全新的重新安装,并且成功了。【参考方案2】:

另一个原因可能是缺少 OpenCV 模块。在我的 Mac OSX El Capitan [10.11.2 (15C50)] 上,我在安装 Anaconda 时遇到了完全相同的错误,这解决了问题:

conda install opencv

虽然这有助于处理:

ImportError: No module named cv2

还引入了以下问题:

ImportError: numpy.core.multiarray failed to import

因为不知何故 numpy 版本切换回 1.7.0。所以执行这个,工作:

conda update numpy

双重检查:

import numpy
print numpy.__version__
1.10.2

现在一切都好。

【讨论】:

【参考方案3】:

我目前正在使用 Google VM (ubuntu 14.04)。在 python3.4 版本上安装 opencv 是一项艰巨的任务。我希望为 python 3.4 安装 opencv,但每次都安装在 2.7 版本上。

我将分享我遵循的步骤,以帮助其他人。

步骤 1 按照 openCv 安装部分中提到的所有步骤操作,直到 cmake。链接如下: https://docs.opencv.org/master/d7/d9f/tutorial_linux_install.html

注意:安装开始时提到的所有 3 个软件包。那个可选的也是..!!并且不要忘记更改您要安装的 python 版本。

我做到了

sudo apt-get install python3-dev python3-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev

按照步骤 2 进行 cmake。

第 2 步 要在特定版本的 python (ubuntu) 中安装 opencv,您必须使用安装 python 的路径设置默认值 (PYTHON_DEFAULT_EXECUTABLE)。您可以使用命令 whereis python3.4 (或您的版本)找到它。我的在 /usr/bin/python3.4

用这个代替页面上提到的cmake,

cmake -D CMAKE_BUILD_TYPE=发布 -D BUILD_NEW_PYTHON_SUPPORT=ON -D BUILD_opencv_python3=ON -D HAVE_opencv_python3=ON -D PYTHON_DEFAULT_EXECUTABLE=/usr/bin/python3.4 ..

注意:不要忘记在 PYTHON_DEFAULT_EXECUTABLE 中更改您的 python 版本和路径。

第 3 步按照链接中提到的其余步骤操作,直到 sudo make install

希望对你有帮助。

【讨论】:

以上是关于ImportError:没有名为 cv2 的模块的主要内容,如果未能解决你的问题,请参考以下文章

ImportError:执行Python脚本时没有名为cv2的模块[重复]

OpenCV for python。错误:没有名为cv2的模块

ImportError:没有名为“urllib2”Python 3的模块[重复]

ImportError:没有名为 lop.models 的模块

为啥 ImportError:没有名为 lightgbm 的模块

ImportError:没有名为瓶子的模块