Jupyter-notebook中import cv2失败: ImportError: DLL load failed: 找不到指定的程序。

在Windows配置各种opencv、opencv-python,没想到今天掉坑了去了 :使用jupyter notebook遇到这种Bug我也是无语,
问题是这样的:

Jupyter-notebook中import cv2失败: ImportError: DLL load failed: 找不到指定的程序。_第1张图片
通常遇到Python安装包问题,一般思路是在DOS中激活Python环境,直接输入

import Package

Package是有问题的安装包,来查看虚拟环境中是否成功安装该包,如果没报错说明在虚拟环境中包安装成功

Jupyter-notebook中import cv2失败: ImportError: DLL load failed: 找不到指定的程序。_第2张图片
结果我发现没啥问题,但还是报错。

考虑从下面几个方面找问题:

  1. 可能是opencv没安装完整的问题,于是
//在Virtual enve中
pip uninstall opencv-python  // 删包

pip install opencv-python  //重新安装

重新回到jupyter notebook中,发现还是报错:ImportError: DLL load failed: 找不到指定的程序。

  1. 可能是版本安装问题,于是
//在Virtual enve中
pip uninstall opencv-python  // 删包

pip install opencv-python==3.4.5.20  //重新安装一个低版本opencv

重新回到jupyter notebook中,还是同样的问题。

3.可能是pip和conda安装混淆问题
之所以会想到这,也是因为之前用Pycharm时候,选择Python环境,conda install的包和pip install的包不混用,于是:

//在Virtual enve中
pip uninstall opencv-python  // 删包

conda install opencv-python  //重新用conda安装opencv

重新回到jupyter notebook中,还是同样的问题。


5min after…
10min after…

突然灵光一闪,发现端倪:在Pycharm中我是在setting中手动设置Python文件Interpretor Path的,但是在Jupyter notebook中,我直接在桌面新建文件夹,然后打开cmd激活notebook的,但是没有选择Python解释器的步骤,我想是不是notebook调用默认的Python环境,比如Anaconda:base环境,但是我没有在base中安装opencv,于是:

cmd打开DOS,直接输入Python(不激活自己create的虚拟环境)
输入:import cv2

于是乎发现了问题:
Jupyter-notebook中import cv2失败: ImportError: DLL load failed: 找不到指定的程序。_第3张图片
Jupyter notebook调用了默认的Python解释器,所以无论我在自己create的虚拟环境中做什么,都会报错,所以查了下资料:在notebook中怎么选择虚拟环境?

Solution 如下:
Jupyter Notebook支持虚拟运行环境,需要在Anaconda里安装一个插件:nb_conda。

//在Virtual enve中
conda install nb_conda

再重新开启Jupyter Notebook:

jupyter notebook

新建Python文件,就可以选择自己的虚拟环境了:
Jupyter-notebook中import cv2失败: ImportError: DLL load failed: 找不到指定的程序。_第4张图片
在这里插入图片描述
OK,这个时候就没有报错了!

另外在安装Package时候有一个小Tips:
将安装源换为清华源,可大大加快下载速度:
比如安装opencv:

pip install opencv-python  -i https://pypi.tuna.tsinghua.edu.cn/simple

加上后面的链接就能把Package换成清华源。

参考Blog:
【1】ImportError:DLL load failed,找不到指定模块的解决办法
【2】如何在Jupyter Notebook中使用Python虚拟环境?

你可能感兴趣的:(Jupyter,notebook)