【问题标题】:Cannot find module cv2 when using OpenCV使用 OpenCV 时找不到模块 cv2
【发布时间】:2013-11-21 11:13:31
【问题描述】:

我已经在 Raspberry Pi 上的 Occidentalis 操作系统(Raspbian 的一种变体)上安装了 OpenCV,使用的是 here 找到的 jayrambhia 脚本。它安装了 2.4.5 版。

当我在 Python 程序中尝试 import cv2 时,我收到以下消息:

pi@raspberrypi~$ python cam.py
Traceback (most recent call last)
File "cam.py", line 1, in <module>
    import cv2
ImportError: No module named cv2

文件cv2.so存储在/usr/local/lib/python2.7/site-packages/...

/usr/local/lib 中还有名为 python3.2 和 python2.6 的文件夹,这可能是个问题,但我不确定。

这可能是路径错误吗?感谢任何帮助,我是 Linux 新手。

【问题讨论】:

  • 尝试:python --version。如果它说 3.2,那么你得到了一个提示。尝试定位 2.7 可执行文件,并使用绝对路径调用它
  • 对于 macOS 10.12 和 python 3,下面的简单命令可以解决错误:pip install opencv-python 参考:pypi.python.org/pypi/opencv-python
  • 如果您使用的是 macOS Catalina,也许这可以帮助您stackoverflow.com/a/61578366/11559619

标签: python python-2.7 opencv raspberry-pi


【解决方案1】:

首先在终端/CMD 中运行这些命令:

conda update anaconda-navigator  
conda update navigator-updater  

那么下面指令的问题就解决了

对于windows,如果你安装了anaconda,你可以简单地做

pip install opencv-python

conda install -c https://conda.binstar.org/menpo opencv

如果你在 linux 上,你可以这样做:

pip install opencv-python

conda install opencv 

Link1Link2

对于 python3.5+,请查看以下链接:Link3Link4

更新:
如果你使用 anaconda,你也可以简单地使用它(因此不需要添加 menpo 频道):

conda install -c conda-forge opencv

【讨论】:

  • 对于 linux 你应该输入 'pip install opencv-python' 或 'sudo pip install opencv-python'
  • 您的命令错误。它是sudo pip3 install opencv-python。此外,对于 linux,对于 python 3,您必须以 sudo pip3 install opencv-python 运行它,对于 python 2,您必须以 sudo pip install opencv-python 运行它。如果您执行 sudo -i forst 或在某些情况下以 root 身份运行,则不需要在命令开头使用 sudo方式。
  • 如果在安装时遇到问题,请确保您拥有最新版本的 pip pip install --upgrade pip 这是我的篱笆
  • pip install opencv-python 为我工作,我没有 Anaconda。仅供来这里的任何人参考。
【解决方案2】:

当 python 无法引用您保存所需 python 文件或库的默认站点包文件夹时,会发生这种情况

在代码中添加这些行:

import sys

sys.path.append('/usr/local/lib/python2.7/site-packages')

或在 bash 中运行 python 命令之前移动到 /usr/local/lib/python2.7/site-packages 目录。如果您不想在代码中添加任何内容,这是一种解决方法。

【讨论】:

  • 你是在windows上工作吗?这个路径看起来像linux系统。
  • 问题是关于 Raspbian OS ,即 Linux 。
  • 在 mac 机器上为我工作
  • 它适用于一个会话,但如果我退出并重新启动 python,我必须再做一次。如何保存这个修改?
  • 执行此操作时出现“ImportError: numpy.core.multiarray failed to import”。有什么建议吗?
【解决方案3】:

我使用以下命令解决了我的问题:

conda install opencv

【讨论】:

  • 如果您安装了 Anaconda Python,这就是您要查找的命令。
  • 我今天在 Windows 64 位 2.7 conda 环境中试了一下,得到了PackageNotFound error
  • 起作用的是conda install -c https://conda.binstar.org/menpo opencv
【解决方案4】:

尝试在~/.bashrc中添加以下行

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

【讨论】:

  • 谢谢,它在使用时对我有用:export PYTHONPATH=/usr/local/python/2.7:$PYTHONPATH
【解决方案5】:

Python3.x 用户

sudo pip3 install opencv-python
【解决方案6】:

对于 Windows 10 和 Python 3.6,这对我有用

pip install opencv-contrib-python

【讨论】:

  • 在 Linux (Ubuntu 16.04) 上也为我工作
  • 这也解决了我在 Ubuntu 上的问题。
【解决方案7】:

以上答案都不适合我。直到我在下面找到这个解决方案之前我都快疯了!

简单运行:

sudo apt install python-opencv

【讨论】:

  • sudo apt install python3-opencv for Ubuntu 20 以及未来可能的其他版本
  • E: Unable to locate package python-opencv 显示此错误
【解决方案8】:

我使用以下命令解决了我的问题:

pip install opencv-python

【讨论】:

    【解决方案9】:
    pip install opencv-python
    

    pip install opencv-python3 
    

    肯定可以正常工作

    【讨论】:

      【解决方案10】:

      我通过运行解决它:

      pip3 install opencv-python
      

      【讨论】:

        【解决方案11】:

        这将是您的解决方案:

        pip install opencv-contrib-python
        

        像魅力一样工作......!

        【讨论】:

          【解决方案12】:

          我通过运行代码pip install opencv_contrib_python解决了这个问题

          【讨论】:

            【解决方案13】:

            我遇到了同样的问题,我安装了 cv2

            pip install cv2
            

            但是,当我导入 cv2 模块时,它显示没有名为 cv2 的模块错误。
            然后我在我的计算机中搜索并找到 cv2.pyd 文件,然后我复制并粘贴到 site-packages 目录

            C:\Python27\Lib\site-packages
            

            然后我关闭并重新打开现有应用程序,它工作正常。

            编辑 我会告诉如何正确安装cv2

            1.首先在您的计算机上安装numpy

            pip install numpy
            


            2. 从 Internet 下载 opencv(大约 266 mb)。
            我为 python 2.7 下载了opencv-2.4.12.exe。然后安装这个 opencv-2.4.12.exe 文件。
            我解压到C:\Users\harun\Downloads到这个文件夹。
            安装后去文件夹中寻找cv2.py
            对我来说

            C:\Users\harun\Downloads\opencv\build\python\2.7\x64
            

            在此文件夹中取cv2.pyd 并将其复制到

            C:\Python27\Lib\site-packages
            

            现在您可以在 python 脚本中使用cv2

            【讨论】:

            • 我不认为通过pip安装的包cv2openCV有任何关系,你确认?
            • @Newben 抱歉回复晚了。在编辑部分我谈论如何正确安装 opencv。如果您还没有解决问题,我希望它会对您有所帮助
            • 在尝试通过pip 安装时,使用pip install opencv-python 应该可以工作。
            • ERROR: Could not find a version that satisfies the requirement cv2 (from versions: none) ERROR: No matching distribution found for cv2
            【解决方案14】:

            如果想在虚拟环境中安装opencv。 在终端运行命令获取虚拟环境列表。

            conda env list
            

            或 jupyter notebook 命令是

            !conda env list
            

            然后更新你的 anaconda。

            conda update anaconda-navigator
            conda update navigator-updater
            

            在您选择的环境路径中安装opencv。

            conda install -c ['environment path'] opencv
            

            Juypter 笔记本

            !conda install --yes --prefix ['environment path'] opencv
            

            【讨论】:

              【解决方案15】:

              如果您是从头开始构建的,请通过此操作

              你会得到No module named cv2.cv。 儿子,你做得对,因为你的 sudo make install 没有出错。

              不过看看这一步

              $ cd ~/.virtualenvs/cv/lib/python2.7/site-packages/
              $ ln -s /usr/local/lib/python2.7/site-packages/cv2.so cv2.so
              

              所有这些中非常重要的一步是链接它。

              ln -s /usr/local/lib/python2.7/site-packages/cv2.so cv2.so 
              or 
              ln -s /usr/local/lib/python2.7/dist-packages/cv2.so cv2.so
              

              您选择明智链接的那一刻,或者通过蛮力找到 cv2.so 文件(如果存在与否)

              我在这里抛出我的输出。

                  Successfully installed numpy-1.15.3
              (cv) demonLover-desktop:~$ cd ~/.virtualenvs/cv/lib/python2.7/site-packages/
              (cv) demonLover-desktop:~/.virtualenvs/cv/lib/python2.7/site-packages$ ln -s /usr/local/lib/python2.7/site-packages/cv2.so cv2.so
              (cv) demonLover-desktop:~/.virtualenvs/cv/lib/python2.7/site-packages$ pip list
              Package    Version
              ---------- -------
              numpy      1.15.3 
              pip        18.1   
              setuptools 40.5.0 
              wheel      0.32.2 
              (cv) demonLover-desktop:~/.virtualenvs/cv/lib/python2.7/site-packages$ python
              Python 2.7.12 (default, Dec  4 2017, 14:50:18) 
              [GCC 5.4.0 20160609] on linux2
              Type "help", "copyright", "credits" or "license" for more information.
              >>> import cv2
              Traceback (most recent call last):
                File "<stdin>", line 1, in <module>
              ImportError: No module named cv2
              >>> 
              [2]+  Stopped                 python
              (cv) demonLover-desktop:~/.virtualenvs/cv/lib/python2.7/site-packages$ ls /usr/local/lib/python2.7/site-packages/c
              ls: cannot access '/usr/local/lib/python2.7/site-packages/c': No such file or directory
              (cv) demonLover-desktop:~/.virtualenvs/cv/lib/python2.7/site-packages$ ls /usr/local/lib/python2.7/site-packages/
              (cv) demonLover-desktop:~/.virtualenvs/cv/lib/python2.7/site-packages$ deactivate 
              demonLover-desktop:~/.virtualenvs/cv/lib/python2.7/site-packages$ ls /usr/local/lib/python2.7/site-packages/
              demonLover-desktop:~/.virtualenvs/cv/lib/python2.7/site-packages$ ls
              cv2.so  easy_install.py  easy_install.pyc  numpy  numpy-1.15.3.dist-info  pip  pip-18.1.dist-info  pkg_resources  setuptools  setuptools-40.5.0.dist-info  wheel  wheel-0.32.2.dist-info
              demonLover-desktop:~/.virtualenvs/cv/lib/python2.7/site-packages$ ls /usr/local/lib/python2.7/site-packages/
              demonLover-desktop:~/.virtualenvs/cv/lib/python2.7/site-packages$ ls -l  /usr/local/lib/python2.7/site-packages/
              total 0
              demonLover-desktop:~/.virtualenvs/cv/lib/python2.7/site-packages$ ls
              cv2.so  easy_install.py  easy_install.pyc  numpy  numpy-1.15.3.dist-info  pip  pip-18.1.dist-info  pkg_resources  setuptools  setuptools-40.5.0.dist-info  wheel  wheel-0.32.2.dist-info
              demonLover-desktop:~/.virtualenvs/cv/lib/python2.7/site-packages$ workon cv
              (cv) demonLover-desktop:~/.virtualenvs/cv/lib/python2.7/site-packages$ python
              Python 2.7.12 (default, Dec  4 2017, 14:50:18) 
              [GCC 5.4.0 20160609] on linux2
              Type "help", "copyright", "credits" or "license" for more information.
              >>> import cv2
              Traceback (most recent call last):
                File "<stdin>", line 1, in <module>
              ImportError: No module named cv2
              >>> 
              [3]+  Stopped                 python
              (cv) demonLover-desktop:~/.virtualenvs/cv/lib/python2.7/site-packages$ find / -name "cv2.so"
              find: ‘/lost+found’: Permission denied
              find: ‘/run/udisks2’: Permission denied
              find: ‘/run/docker’: Permission denied
              find: ‘/run/exim4’: Permission denied
              find: ‘/run/lightdm’: Permission denied
              find: ‘/run/cups/certs’: Permission denied
              find: ‘/run/sudo’: Permission denied
              find: ‘/run/samba/ncalrpc/np’: Permission denied
              find: ‘/run/postgresql/9.5-main.pg_stat_tmp’: Permission denied
              find: ‘/run/postgresql/10-main.pg_stat_tmp’: Permission denied
              find: ‘/run/lvm’: Permission denied
              find: ‘/run/systemd/inaccessible’: Permission denied
              find: ‘/run/lock/lvm’: Permission denied
              find: ‘/root’: Permission denied
              ^C
              (cv) demonLover-desktop:~/.virtualenvs/cv/lib/python2.7/site-packages$ sudofind / -name "cv2.so"
              sudofind: command not found
              (cv) demonLover-desktop:~/.virtualenvs/cv/lib/python2.7/site-packages$ ^C
              (cv) demonLover-desktop:~/.virtualenvs/cv/lib/python2.7/site-packages$ sudo find / -name "cv2.so"
              [sudo] password for app: 
              find: ‘/run/user/1000/gvfs’: Permission denied
              ^C
              (cv) demonLover-desktop:~/.virtualenvs/cv/lib/python2.7/site-packages$ sudo find /usr/ -name "cv2.so"
              /usr/local/lib/python2.7/dist-packages/cv2.so
              ^C
              (cv) demonLover-desktop:~/.virtualenvs/cv/lib/python2.7/site-packages$ ln -s /usr/local/lib/python2.7/dist-packages/ccv2.so cv2.so
              click/                        clonevirtualenv.pyc           configparser-3.5.0.dist-info/ configparser.py               cv2.so                        cycler.py
              clonevirtualenv.py            concurrent/                   configparser-3.5.0-nspkg.pth  configparser.pyc              cycler-0.10.0.dist-info/      cycler.pyc
              (cv) demonLover-desktop:~/.virtualenvs/cv/lib/python2.7/site-packages$ ln -s /usr/local/lib/python2.7/dist-packages/cv2.so cv2.so
              ln: failed to create symbolic link 'cv2.so': File exists
              (cv) demonLover-desktop:~/.virtualenvs/cv/lib/python2.7/site-packages$ rm cv2.so 
              (cv) demonLover-desktop:~/.virtualenvs/cv/lib/python2.7/site-packages$ ln -s /usr/local/lib/python2.7/dist-packages/cv2.so cv2.so
              (cv) demonLover-desktop:~/.virtualenvs/cv/lib/python2.7/site-packages$ ls
              cv2.so  easy_install.py  easy_install.pyc  numpy  numpy-1.15.3.dist-info  pip  pip-18.1.dist-info  pkg_resources  setuptools  setuptools-40.5.0.dist-info  wheel  wheel-0.32.2.dist-info
              (cv) demonLover-desktop:~/.virtualenvs/cv/lib/python2.7/site-packages$ python
              Python 2.7.12 (default, Dec  4 2017, 14:50:18) 
              [GCC 5.4.0 20160609] on linux2
              Type "help", "copyright", "credits" or "license" for more information.
              >>> import cv2
              >>> 
              

              如果您的构建正确,我的步骤只会有所帮助。

              【讨论】:

              • 只有在@TheExorcist 的帮助下才能解决这个问题
              • 很高兴帮助你@RodneySalcedo,但链接时犯了罪,我们在不知不觉中犯了罪。
              【解决方案16】:

              试试这个:

              sudo ldconfig
              
              sudo nano /etc/ld.so.conf.d/opencv.conf
              

              并在opencv.conf 中添加以下行,而不是在命令窗口中

              /usr/local/lib
              

              然后:

              sudo ldconfig
              
              sudo nano /etc/bash.bashrc
              

              并在bash.bashrc 中添加这两行而不是在命令窗口中

              PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig       
              export PKG_CONFIG_PATH
              

              最后重启你的 Pi sudo reboot now

              试试import cv2

              【讨论】:

              • 你能解释一下为什么这些步骤吗?它们与 cv2 有什么关系?
              【解决方案17】:

              我让 opencv 安装和工作的另一种方法是在 Visual Studio 2017 社区内。 Visual Studio 有一个不错的 Python 调试环境。
              因此,我从 vs python env 窗口中搜索并添加了 opencv。 只是想我会分享,因为我喜欢在不同的计算机上尝试不同的方式。

              【讨论】:

                【解决方案18】:

                我遇到了同样的问题,只是无法将 opencv2 和 opencv3 分别安装到 /opt/opencv 和 opencv3 中。原来,在我的主目录中安装 opencv 的血腥蟒蛇首先在路径上并损坏了 opencv。删除它并开始使用 /etc/ld.so.conf.d/opencv.conf 中定义的 /opt/opencv3/lib。第一次工作完美。你有安装anaconda吗?可能是问题所在。

                【讨论】:

                • 你能告诉我你是怎么做到的吗?
                【解决方案19】:

                我知道您在使用 Occidentalis 时遇到了问题,但我在 Windows 上也遇到了问题,但我没有发现任何有用的东西。所以如果你有windows,并且你已经安装了opencv,但你仍然得到一个导入错误,这个方法可能会解决这个问题。

                我设法通过重新激活 anaconda 解决了这个问题。

                首先我从 PATH 中删除了 your\path\to\anaconda3 和 your\path\to\anaconda3\Scripts(稍后您将需要这些,因此请记住这些路径)

                如果你从 cmd 运行 python,它会说:

                Warning:
                This Python interpreter is in a conda environment, but the environment has
                not been activated. Libraries may fail to load. To activate this environment
                please see https://conda.io/activation.
                

                然后在 Anaconda 提示符中我运行了这些:

                your\path\to\anconda3\Scripts\activate base 
                conda activate --stack your\path\to\anaconda3
                

                我不确定这是重新激活 anaconda 的最简单方法,但这对我有用。

                【讨论】:

                  【解决方案20】:

                  这是为那些使用 ubuntu 运行他们的 script.py 的人准备的 您必须将 cv2.so 复制到您的 python pachkages 目录下,然后为您的 bachrc 提供资源。 这里:

                  sudo cp -rfv /home/<user>/<your opencv file dir>/lib/cv2.so  /usr/local/lib/python2.7/site-packages/
                  export PYTHONPATH=/usr/local/lib/python2.7/site-packages:$PYTHONPATH
                  

                  【讨论】:

                    【解决方案21】:

                    对于 python3x 用户

                    $ sudo pip3 install opencv-python
                    

                    对于 python2x 用户

                    $ sudo pip install opencv-python
                    

                    【讨论】:

                      猜你喜欢
                      • 1970-01-01
                      • 1970-01-01
                      • 2018-12-20
                      • 1970-01-01
                      • 1970-01-01
                      • 1970-01-01
                      • 2021-02-13
                      • 2020-03-14
                      相关资源
                      最近更新 更多