在Ubuntu上安装OpenCV for Python,得到ImportError:没有名为cv2.cv的模块

时间:2014-08-09 04:01:43

标签: python opencv ubuntu importerror

我有一个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。

21 个答案:

答案 0 :(得分:109)

我认为你没有python-opencv包。

我有完全相同的问题和

sudo apt-get install python-opencv

为我解决了这个问题。

您可以从以下链接安装opencv https://www.learnopencv.com/install-opencv3-on-ubuntu/ 这个对我有用 。 apt-get install不包含许多opencv包

答案 1 :(得分:30)

我也遇到过这个问题。尝试过不同的事情。但最后

Map<String, Double> doubleMap = new HashMap<>();
MapFromString(doubleMap, "...", Double::valueOf);

Map<String, Integer> integerMap = new HashMap<>();
MapFromString(integerMap, "...", Integer::valueOf);

为我工作。

答案 2 :(得分:16)

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

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

答案 3 :(得分:11)

使用pip:

  

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

之后,安装非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 :(得分:10)

如果您使用的是anaconda,请尝试conda install -c conda-forge opencv,它可以正常使用!

答案 5 :(得分:7)

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

sudo gedit ~/.bashrc

并添加

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

在最后一行

然后记得打开另一个终端,这可以工作,我已经解决了我的问题。希望它可以帮到你。

答案 6 :(得分:5)

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

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

与答案here

相同

答案 7 :(得分:4)

我的环境:

  • 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

答案 8 :(得分:3)

我在指南中找到了一个解决方案:

http://www.samontab.com/web/2014/06/installing-opencv-2-4-9-in-ubuntu-14-04-lts/

我从源代码编译和安装。这个过程非常顺利,如果我知道的话,我会从那开始,而不是试图找到一种更简单的安装方式。希望这些信息对某人有帮助。

答案 9 :(得分: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

答案 10 :(得分:2)

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

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

将此cv2.so文件移至

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

将文件复制到site-packages目录

答案 11 :(得分:1)

如果你正在使用pycharm平台,那么进入就很简单了 view =&gt;工具窗口==&gt; python控制台 之后你会在底部看到控制台[1]: 输入此!pip install opencv-python

答案 12 :(得分:1)

尝试使用: from cv2 import cv

对我有用。

答案 13 :(得分:1)

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

pip install opencv-python

答案 14 :(得分:0)

对于那些试图使用3.1.0但是在安装python之后说&#34;未找到cv2模块&#34;。

你可能有python而不是python-dev。

sudo apt-get install python-dev

然后重新安装3.1.0并且它将起作用。

答案 15 :(得分:0)

这似乎对我在Max OSX上有用: https://anaconda.org/menpo/opencv3

conda install -c menpo opencv3=3.1.0

我确认您可以使用python2.7和python3

在python中导入cv2

答案 16 :(得分:0)

对我来说,这个问题是因为我没有在LineIterator it = FileUtils.lineIterator(theFile, "UTF-8"); try { while (it.hasNext()) { String line = it.nextLine(); // do something with line } } finally { LineIterator.closeQuietly(it); } 文件夹中对cv2.so文件进行适当的sym链接(你的virualenv的名字可能不是“cv”,你的版本是python可能不是3.5 - 相应调整)。

如果你转到~/.virtualenvs/cv/lib/python3.5/site-packages文件夹和ls,cv2.so文件应该以淡蓝色(Ubuntu 16.04)显示,表明它已被链接。您可以通过键入以下内容来检查链接位置:readlink cv2.so

如果cv2.so显示为红色(正如我的那样),请输入文件并输入:(对于我安装的python 3.5)

~/.virtualenvs/cv/lib/python3.5/site-packages

OR(如果你有python 3.6)

ln -s /usr/local/lib/python3.5/dist-packages/cv2.cpython-35m-x86_64-linux-gnu.so cv2.so

如果你在python 2.6或python 2.7中工作,你可以输入:

ln -s /usr/local/lib/python3.6/dist-packages/cv2.cpython-36m-x86_64-linux-gnu.so cv2.so

如果ln -s /usr/local/lib/python2.7/dist-packages/cv2.so cv2.so 位置中不存在cv2.so或cv2.cpython-36m-x86_64-linux-gnu.so文件,请检查它们是否在/usr/local/lib/python***/dist-packages文件夹中。如果是这样,请相应地调整路径。如果没有,你的opencv安装出了问题。

这个答案受到以下信息的启发:https://www.pyimagesearch.com/2016/10/24/ubuntu-16-04-how-to-install-opencv/

答案 17 :(得分:0)

它是完整的安装梦night,但我会再给您一个希望,您可以避免从源代码构建opencv:

pip安装opencv-contrib-python

答案 18 :(得分:0)

您可以按照the official OpenCV tutorial进行源构建。关键部分是为PYTHON3_EXECUTABLE设置PYTHON_LIBRARYPYTHON3_PACKAGES_PATHPYTHON3_NUMPY_INCLUDE_DIRSpython3.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”,则说明安装成功。

注意:如果您不知道numpy参数到PYTHON3_NUMPY_INCLUDE_DIRS的路径,可以先执行import numpy然后执行numpy.__file__ python3 shell。

答案 19 :(得分:0)

尝试使用sudo apt安装python3-opencv

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

或者您可以尝试重新安装opencv软件包。在安装过程中可能已损坏。

答案 20 :(得分:0)

卸载pandas,然后重新安装:

async