虚拟环境中的cv2导入错误

时间:2016-01-26 08:58:42

标签: python python-2.7 opencv install opencv3.0

我在虚拟环境中尝试了一切,但一次又一次“没有名为opencv的模块”。我检查了网站包文件夹,发现没有cv2文件夹,就像我找到了numpy,pip文件夹;但是有一个名为的文件夹:

cv2-1.0-py2.7.egg-info

现在该怎么办? Open CV 3.0与python 3.5.1不兼容,而这个问题一次又一次地阻碍了我对python 2.7。请帮忙!!

  

P.S。之前答案中提到的解决方案都没有奏效:/

Screenshot of Site-Packages

7 个答案:

答案 0 :(得分:2)

将OpenCV安装到虚拟环境时,我还发现cv2.so丢失了。修复方法是手动复制它:cp /home/user/opencv/lib/cv2.so /home/user/venv/lib/python2.7/site-packages/cv2.so

因此,为了完整起见,以下内容对我有用:

git clone https://github.com/Itseez/opencv
cd /home/user/opencv
mkdir release && cd release
cmake -D CMAKE_BUILD_TYPE=RELEASE \
   -D WITH_QT=ON \
   -D WITH_OPENMP=ON \
   -D CMAKE_BUILD_TYPE=RELEASE \
   -D CMAKE_INSTALL_PREFIX=/home/user/venv/local \
   -D PYTHON2_PACKAGES_PATH=/home/user/venv/local/lib/python2.7/site-packages \
   -D INSTALL_C_EXAMPLES=ON \
   -D INSTALL_PYTHON_EXAMPLES=ON \
   -D BUILD_EXAMPLES=ON ..
make
make install
cp /home/user/opencv/lib/cv2.so /home/user/venv/lib/python2.7/site-packages/cv2.so

答案 1 :(得分:1)

cv2-1.0是一个虚假的垃圾模块,里面没有任何内容。

亲眼看看:https://pypi.python.org/pypi/cv2/1.0

安装完成后,cv2-1.0将屏蔽opencv并使其无法正常工作。

...所以删除它:

rm -rf /usr/local/lib/python2.7/dist-packages/cv2-1.0*

如果您正在尝试import cv2,那么您当然需要opencv python模块。

  • 在ubuntu上,pip无法提供 - 您需要安装系统包:

    apt-get install python-opencv

  • 如果你正在使用virtualenv,那么你需要手动将opencv符号链接到你的virtualenv中。

    cd venv/lib/python2.7 && ln -s /usr/local/lib/python2.7/dist-packages/cv2.so
    cd venv/lib/python2.7 && ln -s /usr/local/lib/python2.7/dist-packages/cv.py
    
  • 这不太可能,但有时候pip会遇到依赖于cv2的包。如果没有操作,这个(或运行pip install cv2 - 不推荐!)将从pypi安装冒名顶替cv2-1.0包。要安抚pip,请创建一个元数据文件,描述系统的cv2安装到pip:

    #/usr/local/lib/python2.7/dist-packages/cv2-2.4.8.egg-info
    Metadata-Version: 1.2
    Name: cv2
    Version: 2.4.8
    

    文件名和文件中的版本号应与apt-cache show python-opencv中的主要版本匹配。

关于python-opencv

的说明

如果您从源代码构建opencv debian软件包,那么您最终会得到opencv-python,其中描述的依赖项较少(特别是它缺少opencv-libs),而且我不知道&{ #39;使用它。也许有人可以告诉我们为什么所有这一切都是如此混乱。

答案 2 :(得分:1)

在静脉内尝试一下。会起作用

pip安装opencv-python

答案 3 :(得分:0)

在使用pip的virtualenv中OSX上的opencv安装上,我一直被困在“没有名为opencv的模块”的消息上。

对我的设置有效的两个解决方法是:

1 - 绕过virtualenv结构并直接在python代码中添加opencv的syspath(不是优雅的方式)

import sys
sys.path.append('/usr/local/lib/python3.4/site-packages')

2 - 使用conda代替pip进行opencv安装

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

此处有更多信息(how could we install opencv on anaconda?

答案 4 :(得分:0)

对我有用的解决方案是使用pip安装cv2wrap包:

aws configure

答案 5 :(得分:0)

它为我工作(在您的虚拟环境中):

brew install opencv

答案 6 :(得分:-1)

如果您使用的是MacOS,下面详细说明并从here获取的说明可以提供帮助(感谢Daniel Shiffman和David Haylock!)。如果链接死亡,this是备用位置。 brentiumbrent 的帖子解释了为什么发生安装错误但是用Linux编写,因此如果您使用的是MacOS,则无法使用apt-get命令。 casper 的帖子触及了CMAKE的使用,但是如果您之前没有安装它和/或从未使用它,那么在终端中运行它时可能会出错...

无论如何,我只是从第一个网站复制了HTML。点击“运行snippit”,你就可以得到一个不错的版本。单击上面的其中一个链接以获取所有相同的信息,但格式更好。它提供了所有相同的信息,但格式更好(我只是复制了HTML)。

在说明的最后,它没有明确说明,但您需要按照 casper的引导,并将...opencv/SharedLibs/lib/cv2.so文件复制到您的python包目录:{ {1}}。根据找到的建议here,我从SharedLibs文件夹而不是StaticLibs文件夹安装了cv2.so文件,并且它工作正常。

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