“没有名为'cv2'的模块”,但已安装

时间:2019-01-11 13:56:12

标签: python opencv pycharm conda

我已经安装了带有include opencv +贡献的whl文件,因为我想使用SIFT算法。我在conda环境中使用pip安装了它,所以当我在“ conda list”中提示时 “ opencv-python 3.4.5 + contrib” 但是,当我尝试运行“ ModuleNotFoundError:没有名为'cv2'的模块”时。我的项目也使用了正确的环境

import cv2
sift = cv2.xfeatures2d.SIFT_create()    
ModuleNotFoundError: No module named 'cv2'

3 个答案:

答案 0 :(得分:1)

可能您正在加载python2,而您使用的conda环境包含python3可执行文件,反之亦然。

您正在使用哪个可执行文件执行这些行?如果它在系统目录中,则没有与conda list相同的库。 您可以在Linux上加which来获取可执行文件的绝对路径,例如which pythonwhich python3

另请参阅官方的conda文档:https://conda.io/docs/user-guide/getting-started.html#managing-python

我个人不喜欢conda,因为它会弄乱太多东西,我通常使用pip / virtualenvs或pipenv安装所有内容。

答案 1 :(得分:0)

1)删除所有现有的opencv安装

2)以这种方式重新安装(python 3)

python -m pip install opencv-python

3)还有瞧!

> import cv2
> sift = cv2.xfeatures2d.SIFT_create()

答案 2 :(得分:0)

关于ModuleNotFoundError,可能有2个问题:没有名为“ cv2”的模块。

  1. 找到cv2.so文件并将其移至usr / local / lib / python3.6 / site-packages

    find / -name 'cv2.so'可能的输出/usr/local/lib/python3.6/site-packages /

    cd /usr/local/lib/python3.6/site-packages/

    cp cv2.so /usr/lib/python3.6/site-packages/

    然后退出终端并重新运行。

  2. vi /etc/profile编辑配置文件,并将export PYTHONPATH=/usr/local/lib/python3.6/site-packages:$PYTHONPATH添加到最后一行。