Jupyter中import cv2报错,在虚拟环境下装配置
在Windows配置各种opencv、opencv-python,没想到今天掉坑了去了 :使用jupyter notebook遇到这种Bug我也是无语,
问题是这样的:
通常遇到Python安装包问题,一般思路是在DOS中激活Python环境,直接输入
import Package
Package是有问题的安装包,来查看虚拟环境中是否成功安装该包,如果没报错说明在虚拟环境中包安装成功。
结果我发现没啥问题,但还是报错。
考虑从下面几个方面找问题:
可能是opencv没安装完整的问题,于是
//在Virtual enve中pip uninstall opencv-python // 删包pip install opencv-python //重新安装
重新回到jupyter notebook中,发现还是报错:ImportError: DLL load failed: 找不到指定的程序。
可能是版本安装问题,于是
//在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调用了默认的Python解释器,所以无论我在自己create的虚拟环境中做什么,都会报错,所以查了下资料:在notebook中怎么选择虚拟环境?
Solution 如下:
Jupyter Notebook支持虚拟运行环境,需要在Anaconda里安装一个插件:nb_conda。
//在Virtual enve中conda install nb_conda
再重新开启Jupyter Notebook:
jupyter notebook
新建Python文件,就可以选择自己的虚拟环境了:
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虚拟环境?