使用OpenCV时找不到模块cv2

时间:2013-11-09 12:44:32

标签: python opencv raspberry-pi

我在Raspberry Pi上的Occidentalis操作系统(Raspbian的一个变体)上安装了OpenCV,使用了jayrambhia的脚本here。它安装了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新手。

20 个答案:

答案 0 :(得分:229)

首先在Terminal / 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 

Link1 Link2

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

答案 1 :(得分:63)

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

在代码中添加以下行:

import sys

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

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

答案 2 :(得分:36)

尝试在~/.bashrc

中添加以下行
export PYTHONPATH=/usr/local/lib/python2.7/site-packages:$PYTHONPATH

答案 3 :(得分:35)

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

conda install opencv

答案 4 :(得分:13)

Python3.x用户

sudo pip3 install opencv-python

答案 5 :(得分:11)

上述答案都不适合我。我发疯了,直到我在下面找到这个解决方案!

简单地运行:

sudo apt install python-opencv

答案 6 :(得分:9)

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

pip install opencv-python

答案 7 :(得分:5)

我和

安装cv2的问题一样
pip install cv2

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

C:\Python27\Lib\site-packages

然后我关闭并重新打开现有的应用程序,它起作用了。

修改 我将告诉您如何正确安装cv2

1。首先通过

在您的计算机上安装numpy
pip install numpy


2。从互联网下载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

答案 8 :(得分:5)

pip install opencv-python

pip install opencv-python3 

绝对可以正常工作

答案 9 :(得分:5)

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

conda env list

或 jupyter notebook命令是

!conda env list

然后更新你的蟒蛇。

conda update anaconda-navigator
conda update navigator-updater

在所选环境路径中安装opencv。

conda install -c ['environment path'] opencv

Juypter笔记本

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

答案 10 :(得分:4)

对于Windows 10和Python 3.6,这很适合我

pip install opencv-contrib-python

答案 11 :(得分:3)

这将是您的解决方案:

pip install opencv-contrib-python

就像一个魅力......!

答案 12 :(得分:3)

如果您要从支架上进行构建,请按照以下说明进行操作

您得到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
>>> 

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

答案 13 :(得分:2)

我通过以下方法解决它:

pip3安装opencv-python

答案 14 :(得分:0)

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

VisualStudio2017 python environments with opencv

答案 15 :(得分:0)

我通过运行代码pip install opencv_contrib_python

解决了这个问题

答案 16 :(得分:0)

我知道您遇到了Occidentalis的问题,但是我在Windows上也遇到了问题,但是我发现没有任何帮助。因此,如果您有Windows,并且已经安装了opencv,但是仍然出现Import错误,则此方法可能会解决问题。

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

首先,我从PATH中删除了您的\ path \ to \ anaconda3和您的\ 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

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

答案 17 :(得分:0)

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

答案 18 :(得分:0)

这是为那些使用 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

答案 19 :(得分:0)

试试这个:

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