说明:

  • 今天在使用conda 安装opencv 后,在cmd下正常import cv2

  • 但是进入Jupyter Notebook 后 import cv2 失败,报错ModuleNotFoundError: No module named 'cv2'

    cv2 fail

原因:

发现在conda下安装的包,在 Jupyter Notebook 里面却无法调用。

同时发现 Jupyter 的 Kernel 只有Python 3一个环境,不显示 conda create 我添加的其他环境,因此无法调用到当前环境下的cv包

所以解决 Kernel 问题。

1. 在Jupyter Notebook 中查看Kernel

如果你打开只有一个 Python 3 那个环境,说明你来对地方了。
kernel

问题解决:

查看Kernel
  • 使用下面命令查看当前所有可用的Kernel :

    jupyter kernelspec list
    kernel show

手动添加Kernel
  1. 安装ipykernel:
    conda install ipykernel
    
  2. 手动添加 Kernel
    python -m ipykernel install --name stm32 --display-name "stm32h7"
    
  • --name 被用于 Jupyter 内部,对应 第1步查询那里显示的名称,注意:该命令会覆盖具有相同名称的kernel

  • --display-name 在打开 Jupyter—Kernel—Change Kernel 里面显示的名称

    finined
    此时发现可以成功import cv2,这里一定要注意:所有的操作要在你当前的环境下使用,不要在(base)里安装opencv,却在其他环境里调用,那肯定是不行的!!!

其他:

  • 可以下面命令删除 Kernel
    jupyter kernelspec remove stm32

  • 查看当前环境的 Python 环境路径:

    import sys
    sys.executable
    
Anaconda 使用说明:

因为我使用的是Anaconda 创建了多个环境,所以针对新手有必要讲解下,懂的可以直接跳到

  1. conda create -n xxxx python==3.6 —— 创建一个名字叫xxx的环境,并为该环境安装 Python=3.6

  2. activate xxxxx —— 激活进入xxxx的环境

    当此时 命令行前面的(base)变为(xxxx)你创建的环境名就好了

  3. jupyter notebook —— 打开浏览器并进入Jupyter Notebook

    因为conda 可以支持多个环境并同时互不干扰,
    同时激活xxxx环境的情况下 进行第3部,你在Jupyter 中使用的包也只能使用当前xxxx环境下安装的包

    具体Anaconda使用,可以参考基于Anaconda安装不同版本的Python

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐