最近在使用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
