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

相关推荐
张3蜂12 小时前
Gunicorn深度解析:Python WSGI服务器的王者
服务器·python·gunicorn
rayufo18 小时前
【工具】列出指定文件夹下所有的目录和文件
开发语言·前端·python
中杯可乐多加冰18 小时前
RAG 深度实践系列(七):从“能用”到“好用”——RAG 系统优化与效果评估
人工智能·大模型·llm·大语言模型·rag·检索增强生成
Python 老手19 小时前
Python while 循环 极简核心讲解
java·python·算法
开源技术20 小时前
如何将本地LLM模型与Ollama和Python集成
开发语言·python
weixin_4370446420 小时前
Netbox批量添加设备——堆叠设备
linux·网络·python
我有医保我先冲20 小时前
AI 时代 “任务完成“ 与 “专业能力“ 的区分:理论基础、行业影响与个人发展策略
人工智能·python·机器学习
测试开发Kevin20 小时前
小tip:换行符CRLF 和 LF 的区别以及二者在实际项目中的影响
java·开发语言·python
爱学习的阿磊21 小时前
使用PyTorch构建你的第一个神经网络
jvm·数据库·python
阿狸OKay21 小时前
einops 库和 PyTorch 的 einsum 的语法
人工智能·pytorch·python