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



我有一个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尽可能简单。

我想你没有python-opencv包。

我有完全相同的问题和

sudo apt-get install python-opencv

为我解决了这个问题。

你可以从下面的链接安装opencvhttps://www.learnopencv.com/install-opencv3-on-ubuntu/这对我很有效。apt-get install不包含很多opencv包

我也有这个问题。尝试不同的东西。但最后

conda install opencv

对我有用。

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

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

使用pip:

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

之后,安装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/

如果您正在使用anaconda,请尝试conda install -c conda-forge opencv,它有效!

找到cv2.so的位置,例如/usr/local/lib/python2.7/dist-packages,然后将其添加到~/.bashrc中:

sudo gedit ~/.bashrc

和add

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

在最后一行

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

验证cv2。所以编译,应该放在:/usr/local/lib/python2.7/site-packages然后像这样导出路径

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

与这里的答案相同

我的环境:

    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

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

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

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

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

这是一个完整的安装噩梦,但我希望您可以避免从源代码构建opencv:

pip install OpenCV -contrib-python

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

  1. 克隆repo

    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. 构建
  5. make -j8
    
  6. 安装库
    sudo make install
    
  7. 测试
  8. python3
    import cv2
    

如果你没有得到错误"No module named cv2",则说明安装成功。

注意:如果你不知道PYTHON3_NUMPY_INCLUDE_DIRS参数的numpy的路径,你可以通过在python3 shell中执行import numpynumpy.__file__来找到它。

如果你真的确定你安装了cv2,但它没有给出模块错误。有一个解决办法。也许你的目录中有cv2.so文件

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

移动cv2.so文件到

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

将文件复制到site-packages目录

如果你使用的是pycharm平台,它很容易进入视图=>工具窗口==>python控制台之后,你会在底部看到带有[1]的控制台:输入!pip install opencv-python

尝试使用:from cv2 import cv

这对我有用。

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

pip install opencv-python

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

conda install -c menpo opencv3=3.1.0

我确认您可以使用python2.7和python3在python中导入cv2

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

如果您进入~/.virtualenvs/cv/lib/python3.5/site-packages文件夹并单击ls,则cv2. conf文件将被删除。所以文件应该显示为浅蓝色(Ubuntu 16.04),表明它被链接了。您可以通过输入:readlink cv2来检查链接位置。所以

如果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

OR(如果你有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

如果cv2。或者cv2.cpython-36m-x86_64-linux-gnu。所以文件不存在于你的/usr/local/lib/python***/dist-packages位置,检查看看他们是否在/usr/local/lib/python***/sites-packages文件夹。如果是,请相应地调整路径。如果没有,说明你的opencv安装有问题。

这个答案的灵感来自于这里的信息:https://www.pyimagesearch.com/2016/10/24/ubuntu-16-04-how-to-install-opencv/

对于那些试图使用3.1.0但在安装python后说"cv2模块未找到"的人。

你可能有python但没有python-dev。

sudo apt-get install python-dev

然后重新安装3.1.0就可以了。

尝试使用sudo apt install python3-opencv

它将安装最新的open cv包。

或者您可以尝试重新安装openv包。它可能在安装过程中损坏了。

卸载pandas,然后重新安装:

pip uninstall pandas
pip install pandas

这就解决了我的问题:

sudo apt-get install python3
然后

pip3 install opencv-python

在以不同的方式下载openCV 5次后,错误一直出现在我的屏幕上,直到我喜欢所有这些错误都下载了随机版本的Python,所有这些都在~/usr/local/lib/python3.10中,最新版本是3.11(我预计终端应该在我写'python3'时使用它)。

这就是我的问题所在,我只是在vscode中更改了python版本。

最新更新