在 Ubuntu 上安装 OpenCV for Python,得到 ImportError: No module named cv2.cv
Posted
技术标签:
【中文标题】在 Ubuntu 上安装 OpenCV for Python,得到 ImportError: No module named cv2.cv【英文标题】:Installing OpenCV for Python on Ubuntu, getting ImportError: No module named cv2.cv 【发布时间】:2014-10-02 14:50:28 【问题描述】:我有一个 Ubuntu 14.04 系统,我想在其上安装 OpenCV 并将其与 Python 2.x 一起使用。
我使用此处的说明安装了 OpenCV: https://help.ubuntu.com/community/OpenCV
安装似乎运行正常,没有错误,脚本以输出结束
OpenCV 2.4.9 ready to be used
当我尝试运行示例 Python 脚本时,我得到以下信息:
$ python opencv.py
Traceback (most recent call last):
File "opencv.py", line 1, in <module>
from cv2.cv import *
ImportError: No module named cv2.cv
我怀疑我知道为什么,我只是不知道如何解决它。 OpenCV 安装到我运行安装脚本时所在的当前目录,它是我的主文件夹的子目录。
安装后出现此导入错误的其他人似乎遇到了路径问题,并且很幸运地将其添加到他们的代码中:
import sys
sys.path.append('/usr/local/lib/python2.7/site-packages')
或使用同一目录更新他们的 PYTHONPATH。我尝试添加该代码,它没有任何区别。我在“站点包”目录中看不到任何文件。我应该在那个目录中完成安装吗?我想安装说明会说明这一点。我怀疑我的问题与 Python 找不到 OpenCV 安装有关,但我不确定如何继续。
请帮助我尽可能简单地安装可用的 OpenCV。
【问题讨论】:
OpenCV - cannot find module cv2的可能重复 @krock 我不认为这是一个重复。我的站点包目录中没有该用户的文件 cv2.so 。另外,我提到了那篇文章中给出的两种解决方案,在这里都没有为我工作。 但是你可以导入 cv2 吗?旧的 cv(或 cv2.cv)模块将不会出现在即将发布的 opencv 版本中 @berak 不,我也无法导入 cv2。 【参考方案1】:我认为你没有 python-opencv
包。
我也遇到了同样的问题
sudo apt-get install python-opencv
为我解决了这个问题。
您可以从以下链接安装 opencv https://www.learnopencv.com/install-opencv3-on-ubuntu/ 这个对我有用 。 apt-get install 不包含很多opencv的包
【讨论】:
为什么你的答案应该和其他人不同? OP 确实有这个包。否则 ImportError 会说“没有名为 cv2 的包”。 同样的问题,尝试按照此处的说明安装:help.ubuntu.com/community/OpenCV 不走运。这个解决方案对我有用。谢谢! 就是这么简单!在为许多其他令人难以置信的复杂“解决方案”而苦恼之后,这些解决方案都没有奏效,这成功了。谢谢! :-) sudo dnf install opencv-python for fedora。【参考方案2】:我也有这个问题。尝试了不同的东西。但最终
conda install opencv
为我工作。
【讨论】:
假设您的 python 是 Anaconda,这将起作用。 注意conda install opencv
不适用于 Windows 64 位。【参考方案3】:
如果您想尽可能简单,请从存储库安装:
sudo apt-get install python-opencv libopencv-dev python-numpy python-dev
【讨论】:
我不得不删掉opencv-dev
部分,但除此之外,这个答案对我来说效果很好。
最佳答案在这里!【参考方案4】:
使用点子:
https://pypi.python.org/pypi/pip
$ pip install SomePackage
[...]
Successfully installed SomePackage
当您使用 sys, PYTHONPATH 添加 PYTHONPATH 的路径时,当您关闭 Python shell 时,它总是会重新启动为默认值。检查这个线程:
Permanently add a directory to PYTHONPATH
首先将 openCV 添加到您的路径(快速指南):
https://help.ubuntu.com/community/OpenCV
之后,安装pyopencv依赖的非python包:
sudo apt-get build-dep python-opencv
最后,使用 pip:
pip install pyopencv
另外,您可以查看本教程以在 ubuntu 14.04 LTS 中安装 openCV
http://www.samontab.com/web/2014/06/installing-opencv-2-4-9-in-ubuntu-14-04-lts/
【讨论】:
我应该为 OpenCV 使用哪个 pip 包? pypi.python.org/pypi 列出了很多,不清楚哪个是官方的和/或当前的。 我将用一个简短的指南来编辑我的答案,如果有用请标记为正确 这是不正确的。显示此错误的原因是最近版本中不再存在 cv 子模块。 我不是在谈论错误的原因。我只是给出一个可能的解决方案。它对我有用,也许对其他人有用@AndyHayden 错误:找不到满足 pyopencv 要求的版本(来自版本:2.0.wr1.0.1-demo、2.0.wr1.0.1、2.0.wr1.1.0、2.1.0.wr1。 0.0, 2.1.0.wr1.0.1, 2.1.0.wr1.0.2, 2.1.0.wr1.1.0, 2.1.0.wr1.2.0) 错误:找不到pyopencv的匹配分布【参考方案5】:如果您正在使用 anaconda,请尝试 conda install -c conda-forge opencv
,它可以工作!
【讨论】:
【参考方案6】:查找cv2.so
的位置,例如/usr/local/lib/python2.7/dist-packages
,然后将其添加到您的~/.bashrc
中:
sudo gedit ~/.bashrc
并添加
export PYTHONPATH=/usr/local/lib/python2.7/dist-packages:$PYTHONPATH
在最后一行
然后记得打开另一个终端,这可以工作,我已经解决了我的问题。希望对你有帮助。
【讨论】:
【参考方案7】:验证cv2.so是否编译,应该放在: /usr/local/lib/python2.7/site-packages 然后像这样导出该路径
export PYTHONPATH=/usr/local/lib/python2.7/site-packages:$PYTHONPATH
与答案here相同
【讨论】:
【参考方案8】:我的环境:
Ubuntu 15.10 Python 3.5由于之前的答案都对我不起作用,我从http://opencv.org/downloads.html 下载了 OpenCV 3.0,并遵循了installation manual。我使用了以下cmake
命令:
$ ~/Programs/opencv-3.0.0$ cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local -D PYTHON3_EXECUTABLE=/usr/bin/python3.5 -D PYTHON_INCLUDE_DIR=/usr/include/python3.5 -D PYTHON_INCLUDE_DIR2=/usr/include/x86_64-linux-gnu/python3.5m -D PYTHON_LIBRARY=/usr/lib/x86_64-linux-gnu/libpython3.5m.so -D PYTHON3_NUMPY_INCLUDE_DIRS=/usr/lib/python3/dist-packages/numpy/core/include/ -D PYTHON3_PACKAGES_PATH=/usr/lib/python3/dist-packages ..
本教程的每个步骤都很重要。特别是不要忘记致电sudo make install
。
【讨论】:
【参考方案9】:我在此处的指南中找到了解决方案:
http://www.samontab.com/web/2014/06/installing-opencv-2-4-9-in-ubuntu-14-04-lts/
我求助于从源代码编译和安装。这个过程非常顺利,如果我知道的话,我会从那个开始,而不是试图找到一种更简单的安装方法。希望这些信息对某人有所帮助。
【讨论】:
【参考方案10】:创建一个到 OpenCV 的符号链接。例如:
cd ~/.virtualenvs/cv/lib/python2.7/site-packages/
ln -s /usr/local/lib/python2.7/dist-packages/cv2.so cv2.so
ln -s /usr/local/lib/python2.7/dist-packages/cv.py cv.py
【讨论】:
【参考方案11】:如果您确实确定安装了 cv2 但它没有给出模块错误。有一个解决方案。可能你的目录中有cv2.so
文件
/usr/local/lib/python2.7/site-packages/cv2.so
将此cv2.so
文件移动到
/usr/lib/python2.7/site-packages
将文件复制到站点包目录
【讨论】:
【参考方案12】:它的完整安装噩梦,但我再给你一个希望你可以避免从源代码构建opencv:
pip install opencv-contrib-python
【讨论】:
【参考方案13】:您可以按照the official OpenCV tutorial 构建源代码。关键部分是为python3.6
设置PYTHON3_EXECUTABLE
、PYTHON_LIBRARY
、PYTHON3_PACKAGES_PATH
和PYTHON3_NUMPY_INCLUDE_DIRS
参数。以下是所有步骤:
克隆仓库
git clone https://github.com/opencv/opencv.git
创建build
目录
cd ~/opencv
mkdir build
cd build
配置
cmake -D CMAKE_BUILD_TYPE=RELEASE \
-D CMAKE_INSTALL_PREFIX=/usr/local .. \
-D PYTHON_INCLUDE_DIR=/usr/include/python3.6 \
-D PYTHON_INCLUDE_DIR2=/usr/include/x86_64-linux-gnu/python3.6m \
-D BUILD_NEW_PYTHON_SUPPORT=ON \
-D BUILD_opencv_python3=ON \
-D HAVE_opencv_python3=ON \
-D INSTALL_PYTHON_EXAMPLES=ON \
-D PYTHON3_EXECUTABLE=/usr/bin/python3.6 \
-D PYTHON_DEFAULT_EXECUTABLE=/usr/bin/python3.6 \
-D PYTHON_LIBRARY=/usr/lib/x86_64-linux-gnu/libpython3.6m.so \
-D PYTHON3_PACKAGES_PATH=/usr/lib/python3/dist-packages .. \
-D PYTHON3_NUMPY_INCLUDE_DIRS=/home/user/.local/lib/python3.6/site-packages/numpy/core/include/
构建
make -j8
安装库
sudo make install
测试
python3
import cv2
如果您没有收到错误“No module named cv2”,则安装成功。
注意:如果您不知道numpy
的PYTHON3_NUMPY_INCLUDE_DIRS
参数的路径,您可以通过在python3 shell 中执行import numpy
然后numpy.__file__
找到它。
【讨论】:
【参考方案14】:如果您使用的是 pycharm 平台,则非常简单。
查看=>工具窗口==>python 控制台
之后,您将在底部看到带有 [1] 的控制台:
输入这个!pip install opencv-python
【讨论】:
【参考方案15】:尝试使用:
from cv2 import cv
它对我有用。
【讨论】:
【参考方案16】:我在这里尝试了所有其他选项,但我无法让 import cv2
在 Ubuntu 上使用 Anaconda。这是唯一有帮助的:
pip install opencv-python
【讨论】:
谢谢。它工作:pip3安装opencv-python。 ////// 测试:python3/import numpy/import cv2【参考方案17】:这在 Max OSX 上似乎对我有用: https://anaconda.org/menpo/opencv3
conda install -c menpo opencv3=3.1.0
我确认你可以使用python2.7和python3在python中导入cv2
【讨论】:
【参考方案18】:对我来说,这个问题是由于我没有正确链接~/.virtualenvs/cv/lib/python3.5/site-packages
文件夹中的 cv2.so 文件(你的 virualenv 的名称可能不是“cv”,你的 python 版本可能不是 3.5 - 相应调整)。
如果您转到~/.virtualenvs/cv/lib/python3.5/site-packages
文件夹和ls,则cv2.so 文件应以浅蓝色(Ubuntu 16.04)显示,表明它已链接。您可以通过键入以下内容来检查链接位置:readlink cv2.so
如果 cv2.so 显示为红色(和我的一样),rm 文件并输入:(对于我安装的 python 3.5)
ln -s /usr/local/lib/python3.5/dist-packages/cv2.cpython-35m-x86_64-linux-gnu.so cv2.so
或者(如果你有 python 3.6)
ln -s /usr/local/lib/python3.6/dist-packages/cv2.cpython-36m-x86_64-linux-gnu.so cv2.so
如果您使用的是 python 2.6 或 python 2.7,请输入:
ln -s /usr/local/lib/python2.7/dist-packages/cv2.so cv2.so
如果您的 /usr/local/lib/python***/dist-packages
位置中不存在 cv2.so 或 cv2.cpython-36m-x86_64-linux-gnu.so 文件,请检查它们是否位于 /usr/local/lib/python***/sites-packages
文件夹中。如果是这样,请相应地调整路径。如果没有,你的 opencv 安装出了点问题。
这个答案的灵感来自这里的信息:https://www.pyimagesearch.com/2016/10/24/ubuntu-16-04-how-to-install-opencv/
【讨论】:
【参考方案19】:对于那些尝试使用 3.1.0 但安装 python 后说“找不到 cv2 模块”的人。
你可能有 python 但没有 python-dev。
sudo apt-get install python-dev
然后重新安装 3.1.0 就可以了。
【讨论】:
【参考方案20】:尝试使用 sudo apt install python3-opencv
它将安装最新的open cv包。
或者您可以尝试重新安装 opencv 包。它可能在安装过程中损坏。
【讨论】:
【参考方案21】:卸载 pandas,然后重新安装:
pip uninstall pandas
pip install pandas
【讨论】:
以上是关于在 Ubuntu 上安装 OpenCV for Python,得到 ImportError: No module named cv2.cv的主要内容,如果未能解决你的问题,请参考以下文章
在 ubuntu 18.04 上安装 opencv 2.4.9