如何在VS代码中调试远程Python脚本



我正在Raspberry Pi中进行Python开发。我在笔记本电脑中安装了VS Code,并安装了ssh扩展。使用这个我可以很容易地连接到树莓派。当我连接时,我可以看到VS Code也加载了Raspberry Pi的Python解释器。我可以在vs代码中运行Python脚本,但当我尝试调试代码时,什么也没发生。

有可能从笔记本电脑到Raspberry Pi远程调试Python脚本吗?如何启用此功能?

我已经解决了这个问题。如果有人想进行远程开发和调试,请执行以下步骤:

  1. 在VS代码中安装远程ssh扩展
  2. 安装后,您会在vs代码的左下角找到一个绿色图标,它允许我们连接到远程机器
  3. 使用标准ssh命令连接到远程计算机。或者,如果您不想在每次提示时都使用密码,则可以使用ssh-keygen生成公私密钥
  4. 一旦连接到远程机器,就可以打开文件资源管理器并创建任何python文件。当您保存此信息时,它将保存在您的远程机器中。通过这种方式,您可以使用您的机器在另一台远程机器上远程开发代码
  5. vs代码的好处是它选择了远程机器的python解释器,这样你在远程机器上安装的所有包都可以使用IntelliSense
  6. 为了调试代码,我们将使用debugpy。在两台计算机上都安装此程序(远程和本地(
  7. 在远程计算机上,运行以下命令:

python3 -m debugpy --listen 1.2.3.4:5678 --wait-for-client app.py

这里1.2.3.4是远程机器的IP。这将启动一个远程调试器,该调试器将等待客户端连接。

  1. 在本地机器上,在VS代码中打开Run&调试,添加Python: Remote Attach的配置。确保launch.json的主机作为远程机器的IP,端口为5678
  2. 现在开始正常调试,您会注意到代码将在第一个断点中断,从这里您可以正常进行,就像我们在本地调试过程中所做的那样

TBH,这是VS代码的最佳功能,因为大多数软件都允许您进行远程开发,这只是一个普通的SSH,但远程调试可以让您获得更多的控制权。我在Raspberry Pi上做了一些python项目,显然不能在上面安装VS代码或pycharm。但现在有了这个功能,我可以很容易地使用Pi的python解释器开发代码并调试它。

如果有人有任何问题,请告诉我。很乐意帮忙。

为了高度简化两台windows机器之间的远程调试过程,make对所有IDE都是通用的,并避免windows上的SSH文件权限错误,我制作了自己的python库来解决这个问题。

只需运行pip install pywinrd并创建这两个脚本:-

服务器.py

from PyWinRD.Server import WinRDServer
server = WinRDServer()
server.start()

客户端.py

from PyWinRD.Client import WinRDClient
client = WinRDClient()
client.connect()
client.deploy('path/to/file/or/folder')
client.debug('path/to/python/script')
client.terminal('termninal command')
client.disconnect()

在主机Windows计算机上运行Server.py,在您的计算机上运行Client.py,您将能够执行终端命令,部署额外的文件/文件夹,并在主机上调试您想要的任何python脚本。

您正在调试的python脚本上的所有stdout、stderr调用的副本将实时重定向到您的机器(例如print和raise语句(。

所有stdin调用将仅重定向到您的机器(例如输入语句(,因此服务器不会干扰它们。

最新更新