vscode远程调试
在本地计算机上:
-
在 vscode的工作空间中,创建用于远程调试的配置文件
launch.json
,设置端口和主机以及目录映射。{ "name": "Python: Attach", "type": "python", "request": "attach", "justMyCode": false, // let all python code could be debugged "connect": { "port": 5678, "host": "100.85.188.161", }, "pathMappings": [ { "localRoot": "${fileWorkspaceFolder}", // Maps C:\Users\user1\project1 "remoteRoot": "/usr/local/lib/python3.7/site-packages" // To current working directory ~/project1 } ] }
开始调试
-
两台计算机:确保调试涉及源代码完全相同。
-
两台计算机:使用
python -m pip install --upgrade debugpy
将debugpy安装到远程环境中,本地计算机由vscode安装到虚拟环境中。
-
远程计算机:有两种方法来指定如何连接到远程过程,推荐用第二种方法。
-
在源代码中,添加以下行,地址0.0.0.0和端口5678可以替换为远程计算机的 IP 地址和端口号。
import debugpy # Allow other computers to attach to debugpy at this IP address and port. debugpy.listen(('0.0.0.0', 5678)) # Pause the program until a remote debugger is attached debugpy.wait_for_client()
为了安全考虑,
listen
使用的 IP 地址应是远程计算机的私有 IP 地址。然后,您可以正常启动程序,使其暂停,直到调试器连接。 -
通过模块debugpy启动远程进程,比如:
python3 -m debugpy --listen 0.0.0.0:5678 --wait-for-client -m murano python3 -m debugpy --listen 0.0.0.0:5678 --wait-for-client murano/cmd/api.py
-
本地计算机:只有当您修改了上面概述的远程计算机上的源代码,然后在源代码中,添加在远程计算机上添加的相同代码的评论副本。添加这些行可确保两台计算机上的源代码逐行匹配。
#import debugpy # Allow other computers to attach to debugpy at this IP address and port. #debugpy.listen(('1.2.3.4', 5678)) # Pause the program until a remote debugger is attached #debugpy.wait_for_client()
-
本地计算机:切换到 VS 代码中的运行视图,选择Python:附加配置
-
本地计算机:在要开始调试的代码中设置一个断点。
-
本地计算机:使用修改后的Python启动 VS 代码调试器:附加配置和开始调试按钮。VS 代码应停止在本地设置的断点上,允许您跨过代码、检查变量并执行所有其他调试操作。您在调试控制台中输入的表达式也在远程计算机上运行。
文本输出到粗壮,从语句,显示在两台计算机上。但是,其他输出(如来自像 matplotlib 这样的包中的图形图则仅显示在远程计算机上。
print
-
在远程调试期间,调试工具栏显示如下:
在此工具栏上,断开按钮(Shift+F5)可停止调试器,并允许远程程序运行到完成。重新启动按钮(Ctrl+Shift+F5)会重新启动本地计算机上的调试器,但不会重新启动远程程序。只有在您已经重新启动远程程序并且需要重新连接调试器时,才使用重新启动按钮。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!