“from . import (constants, error, message, context, ImportError: DLL load failed: 找不到指定的模块”的解决办法

1、问题描述

在jupyter notenook启动后,新建一个指定虚拟环境(kernel)的python文件后,在jupyter的terminal提示如下:

[W 16:24:32.862 NotebookApp] Timeout waiting for kernel_info reply from b82df084-42fc-475f-a0ce-5bdd1c987f35
[I 16:24:34.930 NotebookApp] KernelRestarter: restarting kernel (4/5), new random ports
kernel b82df084-42fc-475f-a0ce-5bdd1c987f35 restarted
Traceback (most recent call last):
  File "C:\Users\47444\Anaconda3\envs\dlstudy\lib\runpy.py", line 193, in _run_module_as_main
    "__main__", mod_spec)
  File "C:\Users\47444\Anaconda3\envs\dlstudy\lib\site-packages\jupyter_client\__init__.py", line 4, in <module>
    from .connect import *
  File "C:\Users\47444\Anaconda3\envs\dlstudy\lib\site-packages\jupyter_client\connect.py", line 21, in <module>
    import zmq
  File "C:\Users\47444\Anaconda3\envs\dlstudy\lib\site-packages\zmq\__init__.py", line 47, in <module>
    from zmq import backend
  File "C:\Users\47444\Anaconda3\envs\dlstudy\lib\site-packages\zmq\backend\cython\__init__.py", line 6, in <module>
    from . import (constants, error, message, context,
ImportError: DLL load failed: 找不到指定的模块。
[W 16:24:37.950 NotebookApp] KernelRestarter: restart failed
[W 16:24:37.950 NotebookApp] Kernel b82df084-42fc-475f-a0ce-5bdd1c987f35 died, removing from map.
kernel b82df084-42fc-475f-a0ce-5bdd1c987f35 restarted failed!

PS:报错内容太长了,删除了中间一些内容
在界面上是这样报:
在这里插入图片描述

2、解决办法

先说解决办法,只说步骤不说原因,如果下面几种方法试过都解决不了,再去3、可能存在的问题自己找思路

第一种:添加环境变量

新装anaconda的童鞋,很有可能是在安装的时候忘记添加环境变量了,进入到环境变量,在系统变量里找到Path,点编辑-新建,添加你anaconda的root环境的路径。(不知道自己的路径?看章末的细节补充,供小白食用,下同)
在这里插入图片描述

第二种:重装pyzmq

注意到,中间报了好多关于zmq的错,很可能是pyzmq版本冲突或者其它的玄学问题,那就重装或者降级呗。

# 以下命令在你activate你的环境后的控制台中使用
# 先卸载
pip uninstall pyzmq
# 重装命令
pip installl pyzmq
#或者指定版本安装
pip install pyzmq==18.0.0
第三种:激活环境后再打开

我是用这种方法解决的

先打开anaconda prompt,然后输入
activate dlstudy  # dlstudy换成你自己的虚拟环境名字
jupyter notebook # 打开笔记本,就这么简单,哭死

试试行不行,好像可以
在这里插入图片描述

一些细节
第一种方法:
  • 这里的路径看你安装时选择just me还是All Users,或者说自定义了路径
# case: just me
C:\Users\Your UserName\Anaconda3\Library\bin
# case: all users
C:\ProgramData\Anaconda3\Library\bin  
#如果你在C下找不到ProgramData,是因为它被隐藏了
#case: 自定义 then: 自己去找
  • 安装时强烈建议不要勾选自动添加环境变量,自己手动添加,不然后面可能会有python.exe 无法找到程序入口 无法定位程序输入点的问题,这时候只能痛苦重装
  • win10更新后,右键我的电脑-属性,进去的是和以前不一样的界面了,左下角搜索环境变量,打开就能看见熟悉的界面了。或者在上述属性界面往下拉找高级系统设置,进去也一样
第二种方法:

懒得输命令?不会激活环境?不要搞笑好不好,hxd,带着电脑跑路吧,不要学了,直接放弃(开玩笑的),打开navigator,好用!!!
在这里插入图片描述

3、可能存在的问题

(1)注意到

from . import (constants, error, message, context,
ImportError: DLL load failed: 找不到指定的模块。

是不是路径找不到呢?遂想到去看看添加环境变量没。

发现我的环境变量已经添加了,没问题的吖

(2)又注意到报错信息出现很多zmq的关键字,想到在给虚拟环境安装ipykernel的时候,要一起安装pyzmq这个支持包,百度发现有些人报这个错的原因就是pyzmq这个包和其它环境的不一样(如我的新建虚拟环境pyzmq版本是20.0.0,而我的base(root)环境的版本是17.0.0)。OK,好像跟我的差不多,试一下他的解决办法

pip uninstall pyzmq 
pip install pyzmq 

重装完之后,试一下,还是不行,就算是指定了低版本的也不行,放弃。
(3)心累,最后无意中发现,我一直都是直接在win的开始菜单里打开jupyter notebook的,要是试一下在激活环境后,在对应的控制台用jupyter notebook命令打开呢,试一下,果然可以。搞定收工,干饭去了。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值