前言

阅读前提醒:截至发文,如果使用 VS Code 连接远程 Jupyter 服务器,只能本地存储代码文件(ipynb),而代码执行在远程服务器。如果要操作远程服务器的目录和文件,想达到像 Jupyter Lab 的网页 UI 一样的感觉,目前还不行。如果有变动或其他方案欢迎留言。

更新: 虽然无法通过 Jupyter 服务器在服务器上编辑文件,浏览服务器上的文件和目录,但是如果拥有服务器的 ssh 连接权限,可以通过 VS Code 自带的 ssh 连接控制服务器,进而在服务器上进行代码的编辑与执行。本篇只介绍不使用 ssh,将本地代码上传至远程 jupyter 环境执行的流程。

下面是关于在 VS Code 添加相关功能的 GitHub Issue。

正文

首先确保你的 VS Code 已安装 Python 和 Jupyter 拓展。

Ctrl+Shift+X 打开扩展侧栏。搜索上述扩展并安装,此处不做赘述。

接下来在本地电脑的代码目录下新建或打开一个 ipynb 文件。(这里其实是重点,我在没有打开任何文件的时候搜索了半天指令没有找到设置远程服务器的指令,要新建或打开一个 ipynb 文件,相关指令才能被搜索到)

VSCode中运行JavaScript vscode中运行jupyter_vscode

 之后点击右下角的 Jupyter 服务器。

VSCode中运行JavaScript vscode中运行jupyter_Code_02

如图,然后在 URI 中输入你通过浏览器访问 Jupyter 的 URI 即可。(不要忘记端口号) 

备注

其实想通过 VS Code 连接 Jupyter 很大可能就是像我一样,因为 Jupyter Lab/ Notebook 自带的代码补全太不好用了。(其实试过 Kite,费了半天劲发现它凉凉了)于是在想 VS Code 这边有没有插件能做到相当于是个浏览器接口的功能,能够完成 Web UI 的所有功能。结果搜了一下似乎并没有,目前仍然在开发中。目前的思路是,通过 ssh 管理上面的文件与数据,然后本地编辑好 ipynb 文件后连接服务器,使用服务器的 GPU 环境进行执行。

另外我也做了相关的测试,由于执行环境在服务器,所以数据集也要放在服务器,直接执行 `!ls` 得到的结果是 Jupyter Lab 的根目录。