在 VS Code 中使用 Jupyter:创建自定义内核完整指南

499 阅读3分钟

本文将为读者详细介绍如何在虚拟环境中创建 Jupyter 内核,并在 VS Code 中顺利使用。假设您已经安装好 VS Code、Python 和 Jupyter 插件,并且已通过 Anaconda 配置好基础环境。

环境准备与检查

首先,我们需要确认当前的工作环境。如图所示,我已通过命令进入名为 torch_cpu 的虚拟环境。接下来的所有操作都将在该虚拟环境中进行,请确保您也在目标虚拟环境中执行相关命令!请确保您也在目标虚拟环境中执行相关命令!请确保您也在目标虚拟环境中执行相关命令!

检查 ipykernel 安装状态

在创建内核之前,我们需要确认当前环境是否安装了必要的 ipykernel 模块。执行以下命令进行检查:

pip list | findstr ipykernel

如果命令执行后没有显示任何结果(如图所示),说明当前虚拟环境中尚未安装 ipykernel

检查jupyter.png

重要说明ipykernel 是连接 Jupyter 前端界面与 Python 后端计算引擎的关键组件。它包含了内核启动器 (ipykernel_launcher.py) 等核心模块,是实现 Jupyter 与 Python 环境通信的桥梁。没有这个组件,我们将无法在 Jupyter 中使用该虚拟环境。

安装 ipykernel

接下来,我们需要安装这个关键组件。在激活的虚拟环境中执行以下命令:

pip install ipykernel

安装过程如图所示:

安装ipykernel.png

当看到 "Successfully installed" 提示时,表示 ipykernel 已成功安装。

创建 Jupyter 内核

现在,我们可以创建连接 Jupyter 前端与 Python 后端的核心桥梁。执行以下命令创建内核:

# 请将 torch_cpu 替换为您自己的虚拟环境名称
python -m ipykernel install --user --name=torch_cpu --display-name="Python (torch_cpu)"

命令参数说明:

  • python -m ipykernel install:使用 Python 运行 ipykernel 的安装功能
  • --user:只为当前用户安装(不会影响电脑上的其他用户)
  • --name=torch_cpu:内核的内部代号(必须是唯一的,建议与环境名相同)
  • --display-name="python (torch_cpu)":在 Jupyter 界面中显示的名称(这个是你实际会看到的)

简单来说:

  • --name 是给计算机看的标识(后台使用)
  • --display-name 是给人看的名称(前台显示)

执行成功后,您将看到类似以下的输出:

创建内核.png

这说明桥梁已经搭建成功!Jupyter 现在能够识别并使用你的虚拟环境了。

验证内核安装

为了确认内核创建成功,我们可以使用以下命令检查已安装的内核列表:

jupyter kernelspec list

如图所示,我们可以看到新创建的 torch_cpu 内核已出现在列表中:

内核创建成功.png

在 VS Code 中使用新内核

现在,我们可以在 VS Code 中使用刚刚创建的内核了:

  1. 打开或创建一个 Jupyter Notebook 文件 (.ipynb)
  2. 点击右上角的内核选择按钮
  3. 在弹出列表中找到我们创建的 "python (torch_cpu)" 内核

select_kernel.png

点击torchCpu.png

测试运行环境

选择新内核后,我们可以编写简单的测试代码来验证环境是否正常工作:

import torch
torch.__version__

运行结果应显示当前虚拟环境的 torch 版本,确认我们正在使用正确的环境:

运行成功.png

内核配置与管理

我们创建的 torch_cpu 内核的配置文件位于 %APPDATA%/jupyter/kernels/torch_cpu/ 目录中,主要配置文件为 kernel.json

kernel配置文件.png

通过编辑这个配置文件,我们可以修改内核的显示名称和其他设置:

修改名称.png

总结

通过以上步骤,我们成功完成了:

  1. 环境准备与检查
  2. ipykernel 组件安装
  3. Jupyter 内核创建
  4. VS Code 内核配置
  5. 环境测试验证

现在您可以在 VS Code 中充分利用自定义的 Jupyter 内核进行开发工作了。这种配置方式确保了项目环境的隔离性,让不同项目的依赖管理更加清晰和规范。