Jupyter将markdown和python代码的有趣结合,让我们在学习编程的的过程中获得了比普通IDE更加流畅的体验。但是Jupyter的安装不是和IDE一样的傻瓜式方法,需要一定的技术,也时常会有很多Bug。
LZ在使用Jupyter学习深度学习算法时遇到了很多问题,首先栽在cuda上:
明明在IDE中都能正常使用,在Jupyter中也选择了正确的Kernel,为此参考了以下几个回答:
anaconda prompt发现cuda是true,而jupyter是false的解决办法_槿年的槿年的博客-CSDN博客
python - torch.cuda.is_available() is False only in Jupyter Lab/Notebook - Stack Overflow
但是都未能解决。
其中还遇到了各种import error显示缺少库,但pip安装时显示已经安装的问题。
————————————————————————————————————————
下面是解决方案:
1、CUDA 问题:ipykernel存在Bug,如果是在某个anaconda的虚拟环境下打开的jupter,即使在其他虚拟环境中安装ipykernel,虽然能够识别相应的环境名,但是最终的编译器还是指向创建时的虚拟环境!!!
在安装有Jupter的环境中输入:
jupyter kernelspec list
[ListKernelSpecs] WARNING | Config option `kernel_spec_manager_class` not recognized by `ListKernelSpecs`.
Available kernels:
python3 D:\PYTHON_FILE\Anaconda\envs\yolov5\lib\site-packages\ipykernel\resources
pytorch_unet C:\Users\***\AppData\Roaming\jupyter\kernels\pytorch_unet
yolov5 C:\Users\***\AppData\Roaming\jupyter\kernels\yolov5
打开后更改kernel.json文件
{
"argv": [
"D:\\PYTHON_FILE\\Anaconda\\envs\\yolov5\\python.exe", #实际指向的编译器
"-m",
"ipykernel_launcher",
"-f",
"{connection_file}"
],
"display_name": "Python (yolov5)",
"language": "python",
"metadata": {
"debugger": true
}
}
如果发现实际指向的编译器与设置的不对应,手动修改即可。
2、Import ERROR 提示缺少package但是pip显示已经安装
首先自己根据pip的信息找到:
Requirement already satisfied: debugpy>=1.0 in d:\python_file\anaconda\envs\yolov5\lib\site-packages (from ipykernel) (1.5.1)
...
直接删除该地址的文件or文件夹,再重新使用pip安装,即可解决问题。
由于当时在网络上搜寻数日也未能找到相关的答案,故在此提供该解决方案,希望能有帮助。