大型vscode真香现场

Update 2022-2-26:
增加了更基础的一些安装配置流程

昨天朋友推荐了vscode以后今天试了一下真的是一见钟情,之前学c++的时候就很喜欢用vs,现在用python而且又是在服务器上跑,一直觉得sublime调试非常不方便。vscode对于以前用习惯vs的人不要太舒服,而且对jupyter notebook的支持意外地好,可以说是综合了好几个我非常爱用的IDE的优点了!

在vscode中使用python

这个特别简单,一个官方的教程即可搞定:python-tutorial

几个注意的点:

  • 设置语言

按F1然后搜索“configure display language”,就可以选择和安装语言

  • 切换python 环境

左下角这里可以切换版本,非常方便

  • 安装包

根据tutorial提示,最好是在虚拟环境下安装包

1
2
3
4
py -3 -m venv .venv
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope Process
.venv\scripts\activate
python -m pip install matplotlib

用vscode远程工作

这也是我最关心的问题,毕竟我的代码几乎都是在服务器上跑的。

首先是官方教程:remote-overview,or more specifically:Remote Development using SSH

简单介绍一下,在vscode上用SSH远程工作的大致原理就是,本地vscode只提供UI,所有的工作区和代码之类的全是在远程进行的。但你用起来的体验就像是在本地调代码一样。

需要特别注意的一点是,python插件要在远程重新安装一次。

下载remote development

首先在extensions商店搜索“remote development”

连接remote machine

F1, Remote-SSH: Connect to Host…

这边我选择的是add SSH然后输入username@hostname ,之后弹出来的窗口上方会提示是否继续和输入密码,输入密码之后就会连上然后就可以打开文件夹。

免密登录

这个有点复杂,单独讲一下,官网见:Quick start: SSH key,同时参考了这篇文章:使用vscode进行远程炼丹

  1. 在local打开cmd,输入:
1
ssh-keygen -t rsa -b 4096

中途提示输入文件路径和密码,都直接回车。

  1. 上传公钥

这边我是直接在服务器新建了/.ssh/authorized_keys然后手动把id_rsa.pub里的内容复制进去。

接下来再连接就不需要输入密码了。

在远程中调试

首先就是把python插件再安装一次,然后重新连接,这时候会重新也安装一下pylint。

在vscode里用jupyter notebook

这个我之前想复杂了,其实直接新建一个.ipynb文件,打开并且运行,就会提示你没有装,然后你选择一下安装方式conda/pip就可以装好了。

连接本地的jupyter notebook

用不上,理论上同下

连接服务器上的jupyter notebook

意外也很容易,在想要的目录上jupyter notebook,出来的链接点进去就可以打开了
(之前的坑是用jupyter notebook list,结果出来的目录是home/yourname)


2020年6月12日更新
用上述方法做断连就打不开了,需要用

1
jupyter notebook --ip=0.0.0.0 --port=xxxx

然后在http://gpu-server-2:xxxx/?token=xxxx里把gpu-server-2换成服务器ip就可以了

断点调试时设置参数

可以参考这篇文章:
https://blog.csdn.net/u012332816/article/details/80801106

打开Run→Open Configurations,添加“args”,类似这样:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
{
"version": "0.2.0",
"configurations": [
{
"name": "Python: 当前文件",
"type": "python",
"request": "launch",
"program": "${file}",
"console": "integratedTerminal",
"args": [
"--arg1",
"--arg2"
]
}
]
}

用VScode连接docker容器

参考官方文档,需要先配置好免密登陆。

在本机安装docker,在vscode上安装Remote Development,docker插件。

接下来要修改vscode 的 docker.host,在Docker插件的设置里打开settings.json,增加一行:

1
"docker.host":"ssh://root@ip:36000"

点击左下角的远程开发按钮, 选择”Remote-Containers: Attach to Running Container…”,就可以看到可连接的docker container列表。

之后也可以在远程资源管理器(vscode侧边栏)切换可连接的SSH和containers列表。

实际测试后,如果在远程terminal直接运行:

1
docker exec -it container_ID /bin/bash

也可以直接在远程docker列表中看到。