Jupyter notebook切换虚拟环境报错DLL load failed python.exe 无法找到入口

一.报错问题

我原来安装的Anaconda3,自带python3.7和Jupyter-notebook,安装了tf2.0环境

后来我在tf2.0环境的基础上新建了一个虚拟环境tf_1,安装了tf.14,这样的话

tf1.0和tf2.0版本就可以在Jupyter-notebook上灵活切换了。

如果直接cmd直接登录notebook,如下:

Jupyter notebook切换虚拟环境报错DLL load failed python.exe 无法找到入口_第1张图片

此时我直接new一个python3,就是默认的tf2.0环境是Ok的,如下所示:

Jupyter notebook切换虚拟环境报错DLL load failed python.exe 无法找到入口_第2张图片

但是我new一个tf_1_jjupyter是会报如下错误,同样打开一个tf2.0版本的notebook文件在change kenerl的时候也会报同样的错。

报错如下:

ImportError: DLL load failed: 找不到指定的模块

Jupyter notebook切换虚拟环境报错DLL load failed python.exe 无法找到入口_第3张图片

二.解决问题

解决jupyter notebook启动报错或运行代码报错

1.ImportError: DLL load failed : 找不到指定的模块

解决方法:

cmd-windows控制台-输入conda activate 虚拟环境名称

比如这里虚拟环境名称是tf_1

如果不记得可以在Anaconda的安装目录下可以找到

D:\software\Anaconda_candy\envs\tf_1

2.解决python.exe 无法找到入口 无法定位程序输入点

进入虚拟环境后如果还报错如下:

Jupyter notebook切换虚拟环境报错DLL load failed python.exe 无法找到入口_第4张图片

进入 jupyter notebook 就会弹出这个错误,但将其叉掉却又可以正常进入 jupyter notebook 调试代码。初步分析觉得应该是 dll 文件出了问题。看了一些网上的解决方案,如下所示:

Jupyter notebook切换虚拟环境报错DLL load failed python.exe 无法找到入口_第5张图片

 解决方法:pythoncom37.dll 是 pywin32 的一个文件,位于路径 Anaconda3\envs\你的虚拟环境\Lib\site-packages\pywin32_system32中,我这里文件位置如下所示:

Jupyter notebook切换虚拟环境报错DLL load failed python.exe 无法找到入口_第6张图片

而 D:\python\Anaconda3\envs\tf_1\Library\binp 中也存在一个同名文件ythoncom37.dll,

【将这个文件删除后按理说便没有这个弹窗报错啦!】

Jupyter notebook切换虚拟环境报错DLL load failed python.exe 无法找到入口_第7张图片

按照弹框中的文件路径删除pythoncom37.dl文件之后,仍然报错如下:

【前提conda activate tf_1进入虚拟环境下】

Jupyter notebook切换虚拟环境报错DLL load failed python.exe 无法找到入口_第8张图片

我们按照弹框给出的文件路径找到pythoncom37.dl再次删除就可以了,到此结束。

通过以上方案成功解决如下:

在文件中切换kernel也不会报错了

Jupyter notebook切换虚拟环境报错DLL load failed python.exe 无法找到入口_第9张图片

通过新建new的方式选择下拉框中的tf2.0以及虚拟环境tf1.0版本即可实现版本切换自如,也可以在当前文件中切换环境,如下所示:

Jupyter notebook切换虚拟环境报错DLL load failed python.exe 无法找到入口_第10张图片

参考:

成功解决python.exe 无法找到程序入口 无法定位程序输入点

python.exe无法找到入口 无法定位程序输入点

成功解决python.exe 无法找到入口 无法定位程序输入点

你可能感兴趣的:(python,jupyter,windows)