环境:
centOS
win7
vsCode
预期效果:
在win7上用vsCode远程编辑并断点调试linux上的python代码。
配置步骤:
1 在vsCode搜索并安装拓展插件ftp-sync。
2 在vsCode配置ftp-sync:
Ctrl+Shift+P 输入Ftp-sync: Init,配置服务器账号路径等信息。
{
"remotePath": "要操作的远程linux文件夹路径(如:/home/hj)",
"host": "远程linux的ip或域名",
"username": "linux账号(root或其他)",
"password": "密码",
"port": 22,
"secure": false,
"protocol": "sftp",
"uploadOnSave": true,
"passive": false,
"debug": false,
"privateKeyPath": null,
"passphrase": null,
"ignore": [
"\\.vscode",
"\\.git",
"\\.DS_Store"
],
"generatedFiles": {
"uploadOnSave": false,
"extensionsToInclude": [],
"path": ""
}
}
配置完成后,检验ftp配置是否工作。
在linux上remotePath指定的文件夹新建文件
touch test.py
在vscode按下ctrl+shift+p,然后输入:
Ftp-sync: Sync Remote to Local
选择:
.choose this folder
full-sync
run
本地获取到test.py即说明ftp链接成功了。
3 在linux上用pip安装ptvsd,这里用3.0.0,高了一直报错,原因未知。
pip install ptvsd==3.0.0
安装完成后,在需要远程调试的代码上引入
import ptvsd
ptvsd.settrace(None, ('0.0.0.0', 8000))
即可开启远程调试。完整例子:test.py
# coding:UTF-8
import ptvsd
ptvsd.settrace(None, ('0.0.0.0', 8000))
from time import sleep
from random import random
for _ in xrange(0, 50):
sleep(4)
i = random()
print(i)
此例可用vsCode编辑test.py保存后,使用命令:
ftp-sync: Sync current file to Remote
将文件同步到服务器。
4 在vsCode上配置launch.json.
在文件末尾添加如下配置:
{
"name": "Attach",
"type": "python",
"request": "attach",
"localRoot": "${workspaceFolder}",
"remoteRoot": "要操作的远程linux文件夹路径(如:/home/hj)",
"port": 8000,
"host": "远程linux的ip或域名"
}
以上步骤后,配置完成,开始调试。上面的配置中使用了linux的8000端口,要确认端口是否开放了。比如我的阿里云主机的8000端口,要在阿里云的安全组中设置出入规则。
调试
首先在linux上要运行python代码
python test.py
然后在vscode的调试面板选择Attach项,按f5开始远程调试。
调试截图
如图所示,断点已工作。