昨天朋友推荐了vscode以后今天试了一下真的是一见钟情,之前学c++的时候就很喜欢用vs,现在用python而且又是在服务器上跑,一直觉得sublime调试非常不方便。vscode对于以前用习惯vs的人不要太舒服,而且对jupyter notebook的支持意外地好,可以说是综合了好几个我非常爱用的IDE的优点了!
在vscode中使用python
安装python,vscode,vscode相关python插件
这个特别简单,一个官方的教程即可搞定:python-tutorial
几个注意的点:
-
设置语言
按F1然后搜索“configure display language”,就可以选择和安装语言
-
切换python 环境
左下角这里可以切换版本,非常方便
-
安装包
根据tutorial提示,最好是在虚拟环境下安装包
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进行远程炼丹。
- 在local打开cmd,输入:
ssh-keygen -t rsa -b 4096
中途提示输入文件路径和密码,都直接回车。
- 上传公钥
这边我是直接在服务器新建了/.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日更新
用上述方法做断连就打不开了,需要用
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
like this:
"args": ["--config","../config_zach.yaml",
"--path_config","../path_config_zach.yaml"]
网友评论