我已经在树莓派的Occidentalis操作系统(Raspbian的变体)上安装了OpenCV,使用的脚本是jayrambhia编写的。它安装了2.4.5版本。
当我尝试在Python程序中导入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。因此存储在/usr/local/lib/python2.7/site-packages/…
在/usr/local/lib中还有称为python3.2和python2.6的文件夹,以防相关。
我该如何解决这个问题?这是由路径配置错误引起的吗?
我在安装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
在这个文件夹中取thecv2。并将其复制到
C:\Python27\Lib\site-packages
现在你可以在你的python脚本中使用cv2。
试试这个吧:
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重启现在
然后导入cv2
首先在Terminal/CMD中运行这些命令:
conda update anaconda-navigator
conda update navigator-updater
然后下面指令的问题将得到解决
对于windows,如果你安装了蟒蛇,你可以简单地做
pip install opencv-python
or
conda install -c https://conda.binstar.org/menpo opencv
如果你在Linux上,你可以这样做:
pip install opencv-python
or
conda install opencv
Link1 Link2
对于python3.5+,检查这些链接:Link3, Link4
更新:
如果你使用anaconda,你也可以简单地使用这个(因此不需要添加menpo通道):
conda install -c conda-forge opencv
如果您正在从头开始构建,请从头开始
你得到没有名为cv2.cv的模块。
儿子,你做的所有步骤都是正确的,因为你的sudo make安装没有给出错误。
然而,看看这一步
$ 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。所以文件是否存在
这里我抛出输出。
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
>>>
我的步伐只会有帮助,如果你的建造是正确的。
我知道你在Occidentalis上有问题,但我在Windows上也有问题,而且我没有发现任何有用的东西。所以如果你有窗口,并且你已经安装了opencv,但是你仍然得到一个导入错误,这个方法可能会解决这个问题。
我设法解决了这个问题,重新激活了水蟒。
首先,我从path中删除了你的\path\to\anaconda3和你的\path\to\anaconda3脚本(你以后会需要这些,所以记住这些路径)
然后如果你从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
我不确定这是否是让水蟒重新活跃起来的最简单的方法,但这对我来说是有效的。