VSCode版

请先了解以下内容再配置VSCode版的Jupyter

VSCode版本的好处是可以使用VSCode中丰富的插件,比如查看变量表和值、代码分屏(以上两个是网页版的硬伤)、自动补全、快速跳转、代码纠错、显示函数参数文档、自定义主题、交互式的Git版本管理等(如PyLanceGitHub CopilotGitHub Theme

1、在本地安装VSCode,并安装RemoteSSH插件。具体过程可见官方教程

2、设置SSH免密码登录后,将本地的SSH配置文件增加以下内容。

本地的SSH配置文件的位置通常为(可用VSCode或记事本打开编辑):

"C:\Users\[local_username]\.ssh\config"

添加以下内容使得SSH登陆时调用本地私钥,从而不必手动输入密码。

Host [host]
  HostName [host]
  User [username]
  IdentityFile "C:\Users\[local_username]\.ssh\id_rsa"

3、VSCode中登录服务器后,在VSCode的资源管理器中添加项目文件夹,双击其中的ipynb文件即可打开Jupyter Lab。

4、将Jupyter Lab设置为固定Token登录

启动Jupyter Lab,复制包含Token的URIhttp://localhost:22222/lab?token=foobar(注意,在SSH终端中显示应为http://localhost:22222/lab?token=...,需要自己将设置好的Token填写到URI中)

将该URI输入给VSCode右下角的“Jupyter Server”,即可免于每次登录输入Jupyter Lab的密码。

为何服务器Conda环境已配置,运行代码时却提示缺少某些组件?

原因

可能是因为你未选择服务器端的Kernel,因此VSCode默认使用了你本地的Jupyter Kernel。

解决方法

在VSCode右上角的内核设定中,选择服务器端的ipython内核。主要可以通过Kernel的路径、Remote字样或Conda环境名称来确定是否为服务器上的内核。

5、VSCode中Jupyter Lab的使用方法可以参考官方教程

如何在SSH连接中断后恢复内核并继续工作?

首先需要确保已按照该方式运行Jupyter Lab。

在右上角的内核选择中,选择此前该笔记本的内核即可。

VSCode版的内核管理

目前,VSCode版尚不支持像网页版一样关闭内核。因此,建议你定期有意识的去清理内核,否则可能会有过多的内核堆在后台。

最简单的方法是定期重新启动Jupyter Lab。另一个方法则是打开网页版,在网页版中清理完内核再回到VSCode版工作。

P.S.:如果是我负责维护的那些服务器,会有脚本自动检测并提示你关闭占用内存或缓存过高的进程。

VSCode版如何在单元格内查找和替换

在VSCode版Jupyter中无法使用网页版的Ctrl+Shift+R来实现单元格内的查找替换,取而代之的是F3键。

如果需要对全笔记本进行查找和替换,正常使用Ctrl+F和Ctrl+H即可。


最后更新: July 23, 2022