在Ubuntu上安装适用于Python的OpenCV,出现ImportError:没有名为cv2.cv的模块


87

我有一个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。我尝试添加该代码,但没有任何区别。我在“ site-packages”目录中看不到任何文件。我应该在该目录中完成安装吗?我想安装说明会清楚地说明这一点。我怀疑我的问题与Python没有找到OpenCV安装有关,但是我不确定如何继续。

请帮助我尽可能简单地获得可用的OpenCV安装。



@krock我不认为这是一个重复。我没有像该用户那样在我的site-packages目录中存在文件cv2.so。另外,我提到了该帖子中给出的两个解决方案,但在这里都没有用。
2014年

1
但是你可以导入cv2吗?旧的cv(或cv2.cv)模块在即将发布的opencv版本中将不存在
将于

@berak不,我也不能导入cv2。
2014年

Answers:


110

我认为您没有python-opencv包裹。

我有完全相同的问题,

sudo apt-get install python-opencv

为我解决了这个问题。

您可以从以下链接https://www.learnopencv.com/install-opencv3-on-ubuntu/安装opencv 。apt-get install不包含许多opencv软件包


为什么您的答案应该与其他答案有所不同?
Michele d'Amico

OP确实有包装。否则,ImportError会说“没有名为cv2的软件包”。
安迪·海登

同样的问题,请尝试按照此处的说明进行安装:help.ubuntu.com/community/OpenCV 不走运。这个解决方案对我有用。谢谢!
jschabs 2015年

2
太简单了!在苦恼了许多其他难以置信的复杂“解决方案”之后,这些解决方案都没有奏效,这才成功。谢谢!:-)
Rafael_Espericueta 2015年

sudo dnf为fedora安装opencv-python。
Dinuka Thilanga

30

我也有这个问题。尝试了不同的事情。但是最后

conda install opencv

为我工作。


1
假设您的Python是Anaconda,这将起作用。
ComputerScientist

4
注意conda install opencv不适用于Windows 64位。
shahar_m

17

如果要尽可能简单,请从存储库安装:

sudo apt-get install python-opencv libopencv-dev python-numpy python-dev

1
我必须剪掉opencv-dev一部分,但否则,此答案对我来说效果很好。
Brian Z

最好的答案在这里!
Giacomo1968 '18

11

使用点数:

https://pypi.python.org/pypi/pip

$ pip install SomePackage
  [...]
  Successfully installed SomePackage

而且,当您使用sys向PYTHONPATH添加路径时,PYTHONPATH在关闭Python Shell时始终会重新启动为默认值。检查此线程:

将目录永久添加到PYTHONPATH

首先将openCV添加到您的路径中(快速指南):

https://help.ubuntu.com/community/OpenCV

之后,安装非python软件包pyopencv取决于:

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/


4
我应该为OpenCV使用哪个pip包?在pypi.python.org/pypi上列出了很多,不清楚哪一个是官方的和/或最新的。
robm

我将用简短的指南来编辑答案,如果有用的话,请标记为正确
Juan David

2
这是不正确的。显示此错误的原因是因为cv子模块在最新版本中不再存在。
安迪·海登

我不是在说错误的原因。我只是提供一个可能的解决方案。它对我有用,也许对其他人有用@AndyHayden
Juan David

错误:找不到满足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的匹配分布
Stepan

10

尝试conda install -c conda-forge opencv使用anaconda即可!


8

cv2.so例如/usr/local/lib/python2.7/dist-packages,找到的位置,然后~/.bashrc通过执行以下操作将其添加到您的位置:

sudo gedit ~/.bashrc

并添加

export PYTHONPATH=/usr/local/lib/python2.7/dist-packages:$PYTHONPATH

在最后一行

然后记得打开另一个终端,这可以正常工作,我已经解决了我的问题。希望它能对您有所帮助。


5

验证cv2.so是否已编译,应将其放置在:/usr/local/lib/python2.7/site-packages中,然后像这样导出该路径

export PYTHONPATH=/usr/local/lib/python2.7/site-packages:$PYTHONPATH

这里的答案相同


4

我的环境:

  • Ubuntu 15.10
  • Python 3.5

由于先前的答案对我都不起作用,因此我从http://opencv.org/downloads.html下载了OpenCV 3.0,并遵循了安装手册。我使用以下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



3

创建到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

2

如果您确实确定安装了cv2,但没有给出模块错误。有一个解决方案。可能您cv2.so的目录中有文件

/usr/local/lib/python2.7/site-packages/cv2.so

将此cv2.so文件移到

/usr/lib/python2.7/site-packages

将文件复制到site-packages目录




1

如果您使用的是pycharm平台,则非常简单,进入 view => tool windows ==> python控制台, 之后您会在底部看到带有[1]的控制台:键入!pip install opencv-python


1

我在这里尝试了所有其他选项,但是无法import cv2在Ubuntu上使用Anaconda。这是唯一的帮助:

pip install opencv-python


谢谢。它的工作原理:pip3安装opencv-python。///////测试:python3 / import numpy / import cv2
Soner PALANCI

1

您可以按照OpenCV官方教程进行源代码构建。最关键的部分是设置PYTHON3_EXECUTABLEPYTHON_LIBRARYPYTHON3_PACKAGES_PATHPYTHON3_NUMPY_INCLUDE_DIRS为参数python3.6。这是所有步骤:

  1. 克隆仓库

    git clone https://github.com/opencv/opencv.git
  2. 建立build目录

    cd ~/opencv
    mkdir build
    cd build
  3. 配置

    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/
  4. 建立

    make -j8
  5. 安装库

    sudo make install
  6. 测试

    python3
    import cv2

如果没有出现错误“ No module named cv2”,则说明安装成功。

注意:如果您不知道路径numpyPYTHON3_NUMPY_INCLUDE_DIRS参数,你可以通过执行找到它import numpy,然后numpy.__file__在python3壳。



0

对我来说,这个问题是由于我没有适当地对~/.virtualenvs/cv/lib/python3.5/site-packages文件夹中的cv2.so文件进行符号链接(您的virualenv的名称可能不是“ cv”,而您的python版本可能不是3.5-调整)相应地)。

如果转到~/.virtualenvs/cv/lib/python3.5/site-packagesls文件夹,则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/


0

对于那些尝试使用3.1.0但在安装python之后说“找不到cv2模块”的人。

您可能拥有python,但没有python-dev。

sudo apt-get install python-dev

然后重新安装3.1.0,它将可以正常工作。


0

尝试使用sudo apt install python3-opencv

它将安装最新的open cv软件包。

或者,您可以尝试重新安装opencv软件包。安装期间可能已损坏。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.