IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> 如何在 JupyterLab 中把 ipykernel 切换到不同的 conda 虚拟环境? -> 正文阅读

[Python知识库]如何在 JupyterLab 中把 ipykernel 切换到不同的 conda 虚拟环境?

内容简介:学习虚拟环境配置时,您可能见过在 JupyterLab (或 Jupyter Notebook) 中切换不同 kernel 的做法,看着就很酷哈哈。那么,这样做有什么作用呢?能够更加方便地使用虚拟环境吗?要怎么做才能实现这个功能呢?本文将为您详细介绍。

本文的基础是会使用 conda 配置虚拟环境,欢迎阅读我的文章: 使用 conda 配置虚拟环境与管理安装包

学了 Anaconda 虚拟环境配置之后,我看到有运行环境配置文件 (environment.yml) 的教程,就想安装虚拟环境试试。本来觉得自己掌握了 conda 配置虚拟环境的各种操作,没想到很快就遇到了新问题。 在“Hands-On Machine Learning with Scikit-Learn, Keras & TensorFLow, 2nd Edition, by Aurelien Geron(O’Reilly)” 这本书的配套代码中 (代码的GitHub地址),作者老师写了详细的安装指南,开始的步骤和 使用 conda 配置虚拟环境与管理安装包 一文中介绍的方法没什么不同,也是用 conda env create 把 .yml 的环境配置安装上,建立一个名为 “tf2” 的虚拟环境。然而,接下来要在 tf2 环境中,输入:

(tf2)python3 -m ipykernel install --user --name=python3

据说可以设定 Jupyter Notebook 的 kernel,打开 Jupyter 就是 tf2 的环境配置。这让我十分困惑,之前我在虚拟环境(比如这里的 “tf2”)中运行 JupyterLab,import packages 的版本号都对啊。为什么还要再安装 ipykernel 呢?而且,我在使用中突然发现,import packages 引用的库及其版本号还是基于 base 环境,这是怎么回事?

stackoverflow 的这篇问答 解答了我的问题。原来,有三种方法可以使用不同虚拟环境配置的 JupyterLab (或 Jupyter Notebook) 。下面结合 tf2 这个例子来说明。

方法一

就是上文提到、我以前用的方法。有三步:1.进入虚拟环境 2.安装 jupyterlab 3.在该虚拟环境中,运行 jupyterlab。

安装:

(base)conda activate tf2
(tf2)conda install jupyterlab

使用:

(tf2)jupyter lab

这个方法简单易行,但是有两个缺点:

1.每次都要先进入这个虚拟环境,再运行代码。

2.每个虚拟环境都要安装 jupyterlab (或 jupyter notebook),其实不同虚拟环境的 jupyter 之间只是运行 python 代码的 kernel 不同(kernel 可以理解为 jupyter 中运行代码所使用的 python 解释器),编辑器等框架部分都相同。

既然这样,可不可以都用 base 环境的框架 (jupyterlab),把里面的 kernel 换一下就好了,这就是方法二的思路。

方法二

该方法需要先在虚拟环境中安装 ipykernel 及关联到 Jupyter 中,之后在 base 环境打开 Jupyter ,也可以使用虚拟环境配置了。

安装:

(base)conda activate tf2
(tf2)conda install ipykernel
(tf2)ipython kernel install --user --name=tf2

注意:kernel 命名不一定要和虚拟环境名完全相同,比如这里也可以是:--name=tf2-kernel ,但最好还是和虚拟环境名相似或相关,要不然以后可能会想不起来哪个 kernel 对应的是哪个环境了。

使用:

可以在 base 环境打开 JupyterLab ,如下所示,

(base)jupyter lab

通过切换 kernel 即可在 JupyterLab 中使用 tf2 环境配置,而不必进入 tf2 环境中。具体操作为:打开 JupyterLab ,点击 kernel 项,如下图所示,在下拉框中可以看到不同的 kernels,选择当前环境对应的 kernel,比如这里的 “tf2”,即可切换到 tf2 环境。

在这里插入图片描述

这其实就挺方便了,在 base 环境中打开 JupyterLab 就可以切换多个环境的 kernel。

能不能进一步简化 kernel 配置?只要虚拟环境装了 ipykernel(可以在新建虚拟环境时安装),就自动配置 kernel,都不用进入虚拟环境中写 ipython kernel install --user --name=KernelName 。这就是方法三的思路。

方法三

安装:

在 base 环境中,输入:

(base) conda install nb_conda_kernels

就安装了一个自动化的工具,实现 ipython kernel install 的功能。以后,新建的虚拟环境中只要安装了 ipykernel,该环境的 Jupyter kernel 就会自动新建。

例如,新建一个名为 “test” 的虚拟环境,新建环境时安装 ipykernel,

(base) conda create -n test ipykernel

然后就不用管了,test 环境的 kernel 会自动生成,是不是很省事呢哈哈。

使用:

和方法二相同,在 base 环境打开 JupyterLab 即可,会看到 kernel 选项新增了 “Python [conda env: test-kernel]”,选择该 kernel ,Jupyter 就使用相应的虚拟环境配置。

如果使用 JupyterLab,在初始页面还会看到新生成的不同 kernels,如下图所示。如果要新建一个 Jupyter Notebook,点击某个 kernel,即可生成一个该虚拟环境配置的空白 .ipynb 文件。

在这里插入图片描述

看了上面这三种方法的介绍,你可能已经知道了问题一的答案。为什么要装 ipykernel?这就是方法一和方法二的区别。装了 ipykernel,可以在 base 环境打开 JupyterLab 就使用该虚拟环境配置,而无需每次进入该虚拟环境再打开 JupyterLab。两种方法的效果是相同的。

学习了 ipykernel 之后,可能又会有新的疑问:为什么使用方法一只有默认的 Python3 kernel,没有其它 kernel 可选,那我的环境配置会不会是 base 环境?

不会,我测试了一下,因为方法一是在该虚拟环境中打开 Jupyter,就是用的这个环境配置,你可以用:

import package-name
print(package-name.__version__)

查询一下安装 package 的版本,是该虚拟环境而不是 base 环境的版本。

回到问题二,import packages 的版本号还是用的 base 环境,这是怎么回事?
我分析,问题可能出在 python3 -m ipykernel install --user --name=python3 中的命名 --name=python3。安装指南中提到,这样可以把 tf2 的 kernel 设置为默认 kernel,每次打开不用切换 kernel。但是让 tf2 的 kernel 和 base 环境的 kernel 命名相同,结果 kernel 还是 base 环境配置。在 Anaconda Prompt 输入 jupyter kernelspec list 查看 Jupyter 的 kernels,显示只有一个 kernel: python3。用不同的命名,比如 python3 -m ipykernel install --user --name=tf2,就有了 tf2 环境配置的 kernel 。为什么 tf2 的 ipykernel 用 python3 命名,不会改变默认 Python3 kernel 的环境配置,这个问题我也还没弄懂,欢迎交流和指教,谢谢!

本文对您有帮助的话,请点赞支持一下吧,谢谢!

关注我 宁萌Julie,互相学习,多多交流呀!

参考文章:

配置 kernel 的三种方法:

1.https://stackoverflow.com/questions/58068818/how-to-use-jupyter-notebooks-in-a-conda-environment/58068850

2.https://blog.csdn.net/u014264373/article/details/119390267

JupyterLab 安装 ipykernel :

3.https://zhuanlan.zhihu.com/p/478628221

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2022-07-03 10:44:49  更:2022-07-03 10:45:03 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/27 1:22:13-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码
数据统计