我正在Raspberry Pi中进行Python开发。我在笔记本电脑中安装了VS Code,并安装了ssh
扩展。使用这个我可以很容易地连接到树莓派。当我连接时,我可以看到VS Code也加载了Raspberry Pi的Python解释器。我可以在vs代码中运行Python脚本,但当我尝试调试代码时,什么也没发生。
有可能从笔记本电脑到Raspberry Pi远程调试Python脚本吗?如何启用此功能?
我已经解决了这个问题。如果有人想进行远程开发和调试,请执行以下步骤:
- 在VS代码中安装远程ssh扩展
- 安装后,您会在vs代码的左下角找到一个绿色图标,它允许我们连接到远程机器
- 使用标准ssh命令连接到远程计算机。或者,如果您不想在每次提示时都使用密码,则可以使用ssh-keygen生成公私密钥
- 一旦连接到远程机器,就可以打开文件资源管理器并创建任何python文件。当您保存此信息时,它将保存在您的远程机器中。通过这种方式,您可以使用您的机器在另一台远程机器上远程开发代码
- vs代码的好处是它选择了远程机器的python解释器,这样你在远程机器上安装的所有包都可以使用IntelliSense
- 为了调试代码,我们将使用debugpy。在两台计算机上都安装此程序(远程和本地(
- 在远程计算机上,运行以下命令:
python3 -m debugpy --listen 1.2.3.4:5678 --wait-for-client app.py
这里1.2.3.4
是远程机器的IP。这将启动一个远程调试器,该调试器将等待客户端连接。
- 在本地机器上,在VS代码中打开Run&调试,添加
Python: Remote Attach
的配置。确保launch.json
的主机作为远程机器的IP,端口为5678 - 现在开始正常调试,您会注意到代码将在第一个断点中断,从这里您可以正常进行,就像我们在本地调试过程中所做的那样
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调用将仅重定向到您的机器(例如输入语句(,因此服务器不会干扰它们。