可以指定 Jupyter Notebook 使用的虚拟环境吗

最近在使用jupyter notebook的过程中,总是对一个问题感到疑惑:当前的代码跑在哪个环境下啊? 接下来我一步一步来记录下,我是如何确定的,大家一起讨论下吧。

首先我先创建一个虚拟环境

ini 复制代码
conda create -n langchain_learn python=3.10

我创建了一个名为langchain_learn的虚拟环境,专门用来学习langchain。创建完毕后控制台会提示,创建成功,你可以选择激活这个环境

激活环境

可以先执行

bash 复制代码
conda env list

来看一下目前创建的所有虚拟环境。

然后执行 如下命令 来激活langchain_learn环境

复制代码
conda activate langchain_learn

查看当前环境的安装的包

激活环境之后,执行conda list 可以列出目前环境的所有包,我们发现默认新建的环境并没有jupyter notebook

不过没有关系 我们的全局环境是安装了jupyter的。依旧可以使用jupyter来创建notebook。但是在创建笔记之前,我们要了解一个内核的概念

jupyter 内核

那么啥是内核呢?说人话就是如果你在笔记里的cell中写的代码要能够执行,就需要一个内核,它是用来负责真正执行代码的。

打比方来说:

如果你的内核使用的 Python 环境里没有安装 pandas,那你运行 import pandas 就会报错,即使另一个环境有也不行。

那么内核和虚拟环境的关系

  • 你注册的每一个内核都绑定到某个特定的 Python 环境(可以是 conda 环境、venv 虚拟环境、系统 Python 等)。

如何注册内核呢

是你(用户)把一个 Python 环境「注册」为 Jupyter 的一个内核。

你基于一个已有的 Python 环境,创建了一个 Jupyter 内核(即一组配置文件),让 Jupyter 知道:'哦,我可以在需要时启动这个环境来运行代码'。

注册命令如下:

scss 复制代码
python -m ipykernel install --name langchain_learn --display-name "Python (langchain_learn)"

但是前提是你需要先安装 ipykernel 否则会报错

复制代码
conda install ipykernel
r 复制代码
(F:\anaconda_env\langchain_learn) F:\jupyter_notebook>python -m ipykernel install --name langchain_learn --display-name "Python (langchain_learn)"
Installed kernelspec langchain_learn in F:\anaconda_env\langchain_learn\share\jupyter\kernels\langchain_learn

查看当前jupyter支持的内核列表

jupyter kernelspec list

所以内核就是一个配置文件:

打开kernel.json 发现它指向的是你那个 conda 环境中的 python

相关推荐
xingzhemengyou13 分钟前
python pandas操作excel
python·excel·pandas
兴趣使然黄小黄5 分钟前
【Pytest】Pytest框架快速入门
python·pytest
dagouaofei7 分钟前
文档生成PPT到底快不快?PDF转PPT工具实测分析
python·pdf·powerpoint
Baihai_IDP11 分钟前
对长上下文能力有不同要求,怎么选择合适的模型?
人工智能·面试·llm
玖日大大22 分钟前
TensorFlow 深度解析:从基础到实战的全维度指南
人工智能·python·tensorflow
不拱地的猪28 分钟前
Matplotlib 的字体参数设置方法(MAC OSX)
python·mac·matplotlib·字体设置·文中显示中文
free-elcmacom28 分钟前
机器学习高阶教程<3>统计学习理论进阶
人工智能·python·机器学习·统计学习理论
zuoyou-HPU30 分钟前
ChatGLM4 的 tokenizer 配置文件解析
python·大模型·glm
keineahnung234532 分钟前
從 SymBool 到 SymFloat:PyTorch user magic methods 如何支持符號形狀運算?
人工智能·pytorch·python·深度学习
_妲己1 小时前
SD的细分功能包括重绘,图像处理、放大等扩散模型应用
人工智能·python·深度学习·机器学习·stable diffusion·comfyui·ai工作流