使用背景:
远程连接实验室服务器跑代码,操作均由命令行实现,需要可视化观察代码结果。
设备:
- 本地Windows11开启MobaXterm软件连接服务器
- 实验室服务器Ubuntu操作系统,在anaconda管理的虚拟环境中跑python代码
CHAPTER1 命令
连接到服务器后,cd到工程文件目录
一、操作命令
1 进入虚拟环境
conda activate env_name(自设置的环境名)
2 启动Visdom服务器:
方式一:
python -m visdom.server
方式二:后台运行
nohup python -m visdom.server &
nohup的作用:
参考:https://www.icode9.com/content-1-635546.html
简单来说,可以在断开与服务器连接后,进程仍继续进行,且输出保存到nohup.out。与visdom配合使用,下次登入服务器仍可在观察到可视化结果
3 浏览器访问
方法1:在本地浏览器输入 服务器ip地址:8097
方法2:MobaXterm建立隧道,在本地设定端口
4 保存
浏览器保存:点击文件夹图标(橡皮擦右边的)
命令行保存:
.visdom下生成env_name.json
5 断开
浏览器右上角点击绿色图标online,至offline
报错1【Errno 110】下载plotly-latest.min.js链接超时
方法
1 自行下载https://cdn.plot.ly/plotly-latest.min.js
本地下载并上传至服务器(因为我用了MobaXterm远程连接服务,有上传文件的功能,所以我采用了这种方式)
2 放置到服务器文件夹【路径】/home/你的用户名/.conda/envs/你所在的虚拟环境/lib/你对应的python版本/site-packages/visdom/static/js下
3 解决报错后,再次启动visdom服务器发现出现了新问题(Could not open static file):
【原因】发现是因为自己下载的文件名为“plotly-latest.min.js”而在【路径】/home/你的用户名/.conda/envs/你所在的虚拟环境/lib/你对应的python版本/site-packages/visdom/static/index.html中,关于Plotly的地址为:
【方法】修改index.html或js的文件名一致即可。
另:看到有博主把index.html中关于plotly的src换成了http开头的链接并成功了,但我没有试。
报错2【Errno 98】端口占用
方法
1 命令行输入:
lsof -i tcp:8097
2 查看占用该端口的PID:
可以看到PID为1064716
3 接着在命令行输入杀死PID
kill -9 1064716
4 再次启动Visdom服务器