【问题标题】:" No module named 'cv2' " but it is installed“没有名为‘cv2’的模块”但已安装
【发布时间】:2019-06-06 11:00:10
【问题描述】:

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

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

【问题讨论】:

  • 你是怎么安装的?你是怎么运行的?

标签: python opencv pycharm conda


【解决方案1】:

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

您使用哪个可执行文件来执行这些行?如果它位于系统目录中,则它与您在conda list 中看到的库不同。 您可以在 linux 上添加 which 以获取可执行文件的绝对路径,例如which python 或 which python3。

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

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

【讨论】:

    【解决方案2】:

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

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

    python -m pip install opencv-python
    

    3) 瞧!

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

    【讨论】:

    • 对于python3你想做的; python3 -m pip install opencv-python
    • 截至 2021 年 8 月 23 日为我工作。要卸载,我使用了“pip uninstall opencv-python”。
    • python3 -m pip install opencv-python
    【解决方案3】:

    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 添加到最后一行。

    【讨论】:

      猜你喜欢
      • 2019-12-11
      • 2022-06-25
      • 1970-01-01
      • 2020-06-03
      • 2020-11-09
      • 2017-03-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多