感觉JupyterLab使用的人还是比较少,大家都很喜欢Jupyter Notebook,然后Lab的推广做的也就一般,还没有在Annaconda中默认安装,所以有时候遇到什么坑就很头疼。

原本像往常一样,在cmd里敲击jupyter lab启动,可是不知为啥,一夜之间突然报错说找不到Kernel?!

什么是Kernel呢?

A ‘kernel’ is a program that runs and introspects the user’s code.
IPython includes a kernel for Python code, and people have written
kernels for several other languages.

When Jupyter starts a kernel, it passes it a connection file. This
specifies how to set up communications with the frontend.

就是你用的编译器,一般是python,当然也可以是R等等。一般显示在你Jupyter Notebook/Lab界面的左上角和右下角。

为什么Kernel会出问题?

一般比较新的系统都会默认有一个python的编译器,可以用where pythoncmd中查看,然后which python则会显示你现在默认的编译器是哪个。

然而,因为各种包的兼容问题和版本问题,我们往往在电脑上会需要很多的不同版本的编译器。
这个是很正常的需求,一般大家会通过Annaconda创建虚拟环境,以此来进行版本管理。可以通过conda env list来进行查看,一般默认的话就只有一个base环境:

比如上面我有三个虚拟环境,关于虚拟环境,详情可以参考官方文档。
正常的时候,如果不特意启动虚拟环境,虚拟环境中的编译器,包括在虚拟环境中安装的包是无法被操作的。
如果进入了虚拟环境,则一切操作也会在环境内进行,比如,在虚拟环境总,你只能使用虚拟环境中的编译器,没法使用环境外或者其他环境的。这样才真正起到了隔绝的效果,即使是以后可以,也不推荐这样使用。

那么Kernel到底为啥会出错呢?
首先要了解,我们是有一个专门管理Kernel的JSON文件。首先进入Annaconda的安装目录,然后是在share\jupyter\kernels\python3\kernel.json这里当然指的是Python3作为Kernel,这个文件如下:

{"argv": ["D:\\Anaconda3\\python.exe","-m","ipykernel_launcher","-f","{connection_file}"],"display_name": "base-python3.7","language": "python"
}

很明显的argv这个参数的路径就是你默认的Jupyter Notebook/Lab的默认Kernel,然后display_name就是显示在Lab/Notebook中的名字。
那么虚拟环境中的配置在哪呢?
还是在Annaconda的目录下,\envs\Rython\share\jupyter\kernels\python3,是在envs的子目录下,这点非常重要,那么,默认的Kernel是什么样子的呢?

{"argv": ["D:\\Anaconda3\\envs\\Rython\\python.exe","-m","ipykernel_launcher","-f","{connection_file}"],"display_name": "Python 3","language": "python"
}

很明显的,它调用的是envs中的编译器。
但是,但是,最坑的就是,即使这些问题都规规整整,没有任何的错误,其实还有一个地方是在控制你Kernel的启动的。
就是这里:
AppData\Roaming\jupyter\kernels
这是在里的用户名下面,如果这里写入了相应的配置文件,就是我们所谓的kernel.json那么,无论你在上面提到的那些文件中写了什么路径,也无论你是在哪个虚拟环境中,它都是默认调用这个目录下的配置文件。
最坑的就在与,这个通过重新安装Annaconda是没有办法解决的,因为完全不是一个目录里的文件,我不知道为啥会产生这样的问题,也不知道为啥这样设计,但至少目前一路摸清了Kernel相关的启动和配置的事宜。
顺带的,也了解了如何在Jupyter里面用R的Kernel啊哈哈,有兴趣的可以自己摸索一下。

所以理解了原理之后,就是改删去的配置文件删去,该修改的路径修改,就好啦!

相关的一些参考链接:
launching jupyter i get kernel error
Jupyter Notebook does not find the kernel created by conda.

JupyterLab中Kernel相关使用技巧和报错解决相关推荐

  1. 由于列表中存在相同实例导致insert_many报错解决办法

    在使用insert_many对mongodb进行多文档插入时报错 pymongo.errors.BulkWriteError: batch op errors occurred 但奇怪的是这样没问题 ...

  2. python向数据库插入字符串数据,字符串中含有单引号,入库报错解决办法

    目录 问题 解决办法 示例 问题 最近处理部分数据,某些字段的数据中,含有单引号(含有双引号应该没有影响,如果报错,解决办法和单引号的方式类似)入库是会报错.       针对这一问题,解决办法如下: ...

  3. Python中使用pip安装第三方库报错解决方法

    参考:https://blog.csdn.net/answerxiaoai/article/details/104297187 在安装Google开源维护的算法优化求解器Ortools时出现错误,采用 ...

  4. SpringBoot中@Email报错解决

    SpringBoot中@Email报错解决 JSR303校验相关 现象:在springboot中使用@Email注解进行数据校验时,报没有该注解的错误. 解决方法: 在pom.xml中加该配置 < ...

  5. idea安装及项目导入过程中pom报错解决办法

    1.idea安装可用破解版或者在淘宝上买正版账号(20多块钱一年,挺便宜的) 2.pom报错解决办法: 在项目导入过程中pom报错: 原因:相关jar包未下载完.(下载速度慢,因为下载的链接是国外的节 ...

  6. SAP QM中阶执行事务代码QDB1,报错- Inspection severity 001 AQL 0.650 not in sampling schema A01-

    SAP QM中阶执行事务代码QDB1,报错- Inspection severity 001 AQL 0.650 not in sampling schema A01- 对于sampling proc ...

  7. 【错误记录】Mac 中 IntelliJ IDEA 运行 Python 程序报错 ( pip 21.0 will drop support for Python 2.7 in January 20 )

    文章目录 一.报错信息 二.解决方案 一.报错信息 在 [错误记录]Mac 中 IntelliJ IDEA 运行 Python 程序报错 ( No module named 'threadpool' ...

  8. python中的断点是什么_python中简单的递归(断点报错的小福利)

    Eclipse中导入项目后js报错解决方法(转未解决问题) 本文转自:http://blog.csdn.net/chenchunlin526/article/details/54666882 Ecli ...

  9. oracle拼接字符串报错,Oracle 中wmsys.wm_concat拼接字符串,结果过长报错解决

    备忘:这个函数最大是4000,根据拼接列的长度,通过限制拼接条数来防止拼接字符串过长错误 --这个情况是从子表中读取出具,这里直接把它当做查询字段处理,在子表中有所有数据 select info.id ...

最新文章

  1. Crash工具实战-变量解析【转】
  2. 如何不显示index.php,如何隐藏index.php入口文件?
  3. 什么浏览器好用_还在用手机自带浏览器么?这个不足1M的浏览器却功能更加强大...
  4. 制作计算器窗口java_Java实现的窗口计算器
  5. 解决NF4网卡网刻速度问题
  6. Blizzard Transitions for Mac - 动态风雪过渡效果FCPX转场
  7. 计算机硬件课题,课题:计算机硬件结构介绍
  8. (66)Verilog HDL模块参数化例化
  9. tf之static_transform_publisher
  10. python:使用strip()去掉首尾空格
  11. java定义数字类型的代码_数字类型内置方法(示例代码)
  12. amos看拟合度在哪里看_AMOS分析技术:结构方程模型的拟合度评价指标
  13. CentOS 7各版本镜像合集下载
  14. Euraka的搭建和使用
  15. Ps如何把背景图片拉长并不变形!
  16. GPU深度报告,三大巨头,十四个国内玩家一文看懂【物联网智商精选】
  17. 蜀门Online加密分析
  18. Ubuntu16.04 与本地Win7共享文件夹
  19. 《视觉SLAM十四讲 第二版》笔记及课后习题(第二讲)
  20. RTKLIB专题学习(七)---精密单点定位实现初识(三)

热门文章

  1. 计算机组成原理简答题
  2. 一个XSS靶场练习记录
  3. 【C语言】简单猜字游戏
  4. Python常用模块4-Python的datetime及time模块简介
  5. Python编曲实践(八):我,乔鲁诺·乔巴那,能用两百行代码写出JOJO黄金之风里我自己的出场曲!
  6. 能耗监测系统是干嘛的?
  7. 小程序 php cookie,微信小程序模拟 cookie
  8. 项目过程管理(七)排期和立项
  9. 计算机硬件知识总结,计算机硬件知识总结(二)
  10. 2017计算机一级教学进度表,2016--2017年度第二学期16职高一年级《计算机应用基础》教学进度表...