使用Spyder链接矩池云教程
Spyder 是 Python(x,y) 的作者为它开发的一个简单的 IDE,在 Anaconda 中预装,适合进行数据科学开发。Anaconda 是 Python 发行版,包含了 Python 解释器,集成开发环境(IDE)Spyder,还有常用的科学包module等。
Spyder 支持连接远程服务器,本文将介绍如何在 Spyder 中连接矩池云机器。案例环境为 64 位 WIN10。
Spyder 远程服务仅支持 Python 3 及以上版本,若您选择 Python 2.7 的镜像则无法使用,敬请谅解。
1. 租用一台矩池云机器
矩池云提供网盘存储服务,您可先将数据集和脚本文件打包上传至网盘,提高上传速度,还能节省费用。本教程使用密码登录方式连接。
2. 在服务器端运行命令
在矩池云中,打开'我的租用'列表,找到租用的机器,点击 HTTP 链接,进入 JupyterLab。
点击 JupyterLab 中的 Terminal 按钮,打开 Terminal。
2.1. 输入命令
jupyter --runtime-dir
该命令用以找到 Kernel 文件的路径。
复制该命令的运行结果,/root/.local/share/JupyterLab/runtime
,之后有用。
2.2. 输入命令
pip install spyder-kernels
pip install -U ipykernel
pip install ipython --ignore-installed ipython
python -m spyder_kernels.console
启动一个 Spyder Kernel。
复制该 Kernel 的文件名,即图中红框部分,例如,图中的 kernel-64.json
。
2.3. 保存 Kernel 文件至本地
现在我们知道了 Kernel 文件路径和文件名,将前面两步复制的信息拼接后,可以得到该文件路径。由于JupyterLab 中无法打开隐藏文件和文件夹,因此无法直接下载该 JSON 文件。
我们通过文件复制粘贴的方式,将文件保存下来。此时 Kernel 已启动,该 Terminal 无法再运行其他命令,我们需要新建一个 Terminal,让我们点击左上角的加号,回到 Launcher。
然后再次点击 Terminal 新建,在新的 Terminal 中用 cat
命令可查看 Kernel 文件。
cat /root/.local/share/JupyterLab/runtime/kernel-64.json
复制该 JSON 。
在您本地桌面或其他位置,新建一个 kernel.json
文件。
将该 JSON 复制进去然后保存。
3. 下载并安装 Spyder
下载 Spyder:Spyder 下载地址
按照提示安装即可。安装后启动 Spyder。
4. 在 Spyder 中配置链接
4.1. 安装 paramiko
在 Spyder 右下角的 IPython console 中,输入命令
!pip install paramiko
!pip install pyzmq
!pip install ipykernel
运行成功后重启 Spyder。
4.2. 连接至远程服务器
在 IPython console 中,右键点击已有 Console 的 Tab,在下拉框中选择 Connect to an existing kernel。也可点击右侧的齿轮按钮,在设置的下拉菜单中找到。
在配置页面中,Connection File 选项用以配置 Kernel 文件。点击右侧浏览按钮,找到刚刚保存的 kernel.json
文件。
将 This is a remote kernel 前面的复选框选中。填写信息如下:
Host(主机名):hz.matpool.com 或 hz-t2.matpool.com,请以您 SSH 链接中给定的域名为准。 Port(端口): 矩池云租用记录里 SSH 链接里冒号后的几位数字,例如 44039。 User(用户名):root。 Password(密码):您租用机器时填写的密码。 SSH Keyfile 可不填。
示例见图。
如果您使用的是 Spyder 旧版本,填写信息会有些许不同:
Host Name:{用户名}@{主机名}:{您的端口号}。例如:root@hz.matpool.com:44039. Password:您租用矩池云机器时,填写的密码。 SSH Keyfile 可不填。
示例见图。
点击 OK 开始连接。
当出现 root@hz.matpool.com
开头的 Kernel 时,意味着连接成功。
5. 在 Spyder 中使用矩池云机器运行脚本
由于 Spyder 暂不支持文件同步功能,若直接点击 Run 按钮,在远程 Kernel 中会提示找不到文件。目前有两种办法可运行脚本。
5.1. 选中脚本运行
先选中本地要执行的脚本,然后选择菜单栏中的 'Run' - 'Run selection or current line',Spyder 会自动将脚本复制进 Kernel 里并执行。
5.2. 手动输入
您可以在 IPython console里手动输入 Python 命令,或输入 !+Bash
命令,例如 !nvidia-smi
以查看显卡信息。
5.3. 上传文件
由于 Spyder 暂不支持文件同步功能,若您需要引用数据集或文件,需要先使用网盘上传到矩池云,并修改脚本里的文件路径为远程文件的路径,并确认当前运行路径与远程目标路径一致。
例如,您要在脚本中执行 import modify
命令,但提示 modify 不存在,需要您先将 modify.py
文件上传到网盘,之后在 Spyder 中先输入 cd /mnt
命令进入网盘目录中,再运行脚本,此时脚本才能找到 modify.py 文件。
同理,若您上传了 dataset.tar.gz 数据集到网盘根目录中,需要在脚本中使用该数据集,则须在脚本内,将数据集的读取路径改为 /mnt/dataset.tar.gz
。