可以指定 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

相关推荐
全栈弄潮儿5 分钟前
Python实战第9期:文件操作
后端·python·编程语言
小星星_ios10 分钟前
从 3Blue1Brown 到 NumPy:手写一个神经网络训练 MNIST
人工智能·python·神经网络
Maxwin14 分钟前
Manim 竖屏画布选 9×16 还是 4.5×8?从 font_size 和每单位像素数说起
python·ffmpeg
Csvn14 分钟前
A/B 实验:85% 比 78% 好,居然不算赢?(R03)
人工智能·aigc·agent
昭昭日月明20 分钟前
使用 Ragas 量化 RAG
python·langchain·ai编程
姜九笙56126 分钟前
python学习---归来仍是新人
java·python·学习
幸福清风42 分钟前
从域名到一行 nginx 配置:一次站点 HTTPS 证书更换与排障复盘
python·nginx·https
桃西西呀1 小时前
我给网关加了计量埋点,才发现限流配错三个月,下游账单多烧了两倍
人工智能·llm·ai编程
诸神缄默不语1 小时前
WorkBuddy可以用“腾讯轻量云专家”直连腾讯云轻量应用服务器(Lighthouse)
agent
用户3126874877201 小时前
GPT-6 Pro 拉起“AI 小队”、ChatGPT 长出“双手”:OpenAI 把 Agent 干活的方式重写了
agent