在进行数据分析、数据挖掘以及机器学习的研究和学习中,jupyter notebook是强大的工具,使得我们可以快速进行实验。
然而,有时候我们需要使用到实验室或者是某些远程的机器进行操作,又想通过本地连接服务器并在jupyter notebook中使用服务器上的高配置资源。
本文通过介绍在VS Code中如何连接到远程服务器上的jupyter notebook的方法。
使用Remote SSH连接服务器
Remote SSH插件安装
首先,通过VS Code的插件库中搜索 Remote SSH
,点击安装。
连接远程SSH
-
安装完成后,通过快捷键
ctrl + p
将出现VS Code的命令框 或者 通过菜单栏的查看中的命令面板
-
在命令面板中选择
Remote-SSH: Add New SSH Host
命令
在命令行中直接输入格式形如:账号@ip地址 -端口号(一般SFTP为22)
,例如[email protected] -22
-
保存远程连接配置至配置文件中
这里默认选择第一个,保存到系统用户目录下。
打开配置文件可以浏览所有添加的SSH配置
-
点击VS Code中的远程资源管理器
右键点击刚刚添加的连接,选择在当前窗口连接或者是在新窗口中打开
之后会跳出窗口输入服务器账户的密码,当然可以通过其他远程连接工具测试连接是否可以使用。左下角如果显示为IP地址则表示连接成功。
连接Jupyter notebook
服务器中安装jupyter插件
注意,这里需要完成上一步的SSH连接,在连接远程的VS Code窗口中安装jupyter插件。在VS Code插件库中搜索jupyter。
上图为已经在服务安装成功,如果没有安装,在禁用处应该提示为在你的服务器IP上安装该插件,点击安装即可。
创建运行环境
如果已经安装有python虚拟环境,通过pip install jupyter
在远程安装好jupyter
没有虚拟环境在终端创建环境
通过远程工具(如:MobaXterm,XShell)连接到服务器。
-
激活创建的环境
conda activate jupyter-work
-
在服务器中运行jupyter,运行如下任意一条命令
jupyter notebook --allow-root
jupyter notebook --port 你的端口 --allow-root
设置特定端口当然防止终端断开后,服务器中的jupyter服务关闭,可以通过linux的
nohup
命令,使得jupyter服务在后台运行。命令:nohup jupyter notebook --allow-root
。服务启动之后可以通过cat nohup.out
查看运行的jupyter信息
-
复制服务的tokenhttp://localhost:8099/?token=f0f84a6ca4b35f4676159b74df38bf7831bd5dd536ab38b5
-
调至VS Code界面,调出命令面板
选择指定远程服务器连接,并选择现有URI
粘贴刚刚复制的,回车即可连接到jupyter服务器
测试
通过命令面板创建一个新的jupyter notebook
右下角显示了当前连接的远程jupyter服务token,右上角的ipykernel为python内核,如果在你的虚拟环境下运行了jupyter,内核默认应该为你的虚拟环境中的python。
以上操作都需要在SSH连接的窗口中进行,编辑的jupyter在保存的时候也会提示在远程服务器的目录地址。