先说下我的环境,远程服务器是linux(openEuler 24.03),本地使用vscode进行调试。
前提:已经可以通过vscode远程连接到远程服务器,左侧可以看到服务器上的目录,下方可以连接上ssh

下面是远程调试流程
1.我在test目录下新建了一个calc.py文件,用来后续调试
- 在本机和远程服务器都安装debugpy程序
pip install debugpy
-
在服务器运行脚本
python -Xfrozen_modules=off -m debugpy --listen 0.0.0.0:5678 --wait-for-client path/to/test/calc.py
脚本说明:
-Xfrozen_modules=off Python 会从磁盘加载原始的.py/.pyc 文件,而非二进制冻结版本;
-m debugpy 表示以模块方式运行 Python 调试器 debugpy
--listen 0.0.0.0:5678 指定debugpy监听的网络地址和端口。0.0.0.0表示监听本机所有网卡,5678是debugpy默认调试端口
--wait-for-client 调试阻塞等待参数,执行此命令后,脚本不会立即运行,而是暂停在启动阶段,直到有调试客户端(如 VSCode)成功连接到0.0.0.0:5678后,才开始执行calc.py的代码
path/to/test/calc.py 待执行的脚本,注意需要改为真实路径
- 点击左侧调试按钮,再点击 创建一个launch.json 文件
在上方弹出的对话框,选择 Python debugger

再点击选择 带有参数的Python文件

这将会在你远程服务器当前目录下新建一个.vscode目录,目录中有一个launch.json文件
launch.json文件内容如下

更改为如下样式:name可以自定义,args改为数组,每一个参数就是数组值

- 打好断点,点击小三角,就可以开始调试了

可以看到左侧已经能看到变量了,上方也出现了调试工具栏,同时参数也能接收到
