使用JupyterLab登录云主机运行和调试程序
目标
本教程将会演示如何使用JupyterLab登录云主机,运行并调试Python程序。
1.创建一个云主机实例
首先您需要创建一个云主机实例,创建后实例会自动开机,方法请参照 如何创建云主机实例
2.打开JupyterLab
云主机开机后,您可以看到有一个JupyterLab的链接,点击这个链接就可以打开JupyterLab的页面。
3.使用JupyterLab的终端操作云主机
打开JupyterLab的页面后,您可以看到欢迎界面。您在其他页面点击左上角的 +号 也可以打开这个欢迎界面,在这个界面您可以创建Python3的notebook或者console,以及文本文件和Markdown文件等等。这里我们点击Other里面的Terminal就可以打开一个终端窗口。
您可以多次创建多个Teriminal终端窗口,他们之间是相互独立的,可以执行不同的任务。
在弹出的窗口中,我们可以运行例如 nvidia-smi 这样的指令查看GPU的状态。
也可以在终端中运行程序,例如您可以在TensorFlow2环境中下载 mnist手写数字的训练程序 程序,在终端窗口中执行
# 下载训练程序
wget https://jky-public-data-sets.oss-cn-shenzhen.aliyuncs.com/tools/tf2-mnist.py
# 运行训练程序
python mnist-tf2.py
运行mnist手写数字的训练程序,运行之后就可以看到任务在终端中已经跑起来了。
JupyterLab里面打开的Terminal终端窗口默认是后台运行的,这就意味着,您关掉浏览器窗口之后,您在Terminal里面运行的任务也会继续执行。
如果您需要彻底关掉终端并结束那个终端里面运行的任务,您可以按图示方法结束任务并关闭那个终端。
4.使用JupyterLab的Notebook运行Python程序
您也可以使用JupyterLab中的Notebook来运行Python程序,例如您可以下载 mnist手写数字的训练程序Notebook,方法是在终端窗口中执行如下指令:
# 下载训练程序的Notebook
wget https://jky-public-data-sets.oss-cn-shenzhen.aliyuncs.com/tools/tf2-mnist.ipynb
运行完指令下载好Notebook之后,我们可以在文件浏览器中打开您刚刚下载好的notebook文件。您可以点击运行按钮,以代码块为单位运行python程序。
您也可以点击菜单中的 Kernel -> Restart Kernel and Run All Cells 来一次性运行所有代码块的代码。
无论您使用何种方法,最后您都可以发现训练程序已经跑起来了。
5.使用JupyterLab的Notebook调试Python程序
JupyterLab新添加了一个插件的功能,您可以给您的JupyterLab添加一些插件来增强JupyterLab的功能。例如我们可以用如下指令来安装调试功能。
首先我们需要确认我们的Jupyter版本支持调试器,可以在终端中运行如下指令 (后续我们会将这个功能预装到主机内部)
conda install -c conda-forge xeus-python=0.8.6 notebook=6 ptvsd nodejs -y \
&& jupyter labextension install @jupyterlab/debugger
运行好之后,关掉JupyterLab的所有终端窗口,然后重启云主机。
如果您重启之后点击JupyterLab无法打开,可尝试更换端口号并重启,刷新一下JupyterLab的登录链接。
再次打开JupyterLab并打开notebook文件,您需要将Python解释器切换成XPython,以便支持调试功能。
设置好之后,您就会发现右上角多了Debug的按钮,按Debug按钮之后,您就可以进入Debug模式。
您可以在代码的左侧设置断点,程序运行到断点处就会停下,您可以在变量窗口中看到各个变量的值。
总结
使用极客云主机内部内置的JupyterLab可以在您不下载任何其他软件的情况下,对云主机实行登录,运行程序,调试程序等功能,非常的方便。