查看PyCharm。多年来,我一直是快乐的付费客户,但也提供免费的社区版本。
有一个文件监视程序插件,可以将文件复制到远程计算机(您的RPi)上。并且它具有执行远程调试的能力。
连接调试模块
关于设置PyCharm远程调试,首先要做的是连接pycharm-debug.egg
。我使用的是Mac,文件位于/Applications/PyCharm.app/Contents/debug-eggs/pycharm-debug.egg
。我使用以下命令将其复制到我的RPi:
scp /Applications/PyCharm.app/Contents/debug-eggs/pycharm-debug.egg pi@mediapi:
该文件必须在Python路径中的某个位置才能被找到。我通过运行以下命令寻找合适的地方:
pi@mediapi ~ $ python -c 'import sys; print sys.path'
['', '/usr/lib/python2.7', '/usr/lib/python2.7/plat-linux2', '/usr/lib/python2.7/lib-tk', '/usr/lib/python2.7/lib-old', '/usr/lib/python2.7/lib-dynload', '/usr/local/lib/python2.7/dist-packages', '/usr/lib/python2.7/dist-packages', '/usr/lib/pymodules/python2.7']
我认为从该列表/usr/local/lib/python2.7/dist-packages/
中最合适(因为它位于中/usr/local
),因此:
sudo mv pycharm-debug.egg /usr/local/lib/python2.7/dist-packages/
我们需要一个.pth
文件将其注入到路径中:
pi@mediapi ~ $ echo /usr/local/lib/python2.7/dist-packages/pycharm-debug.egg | sudo tee -a /usr/local/lib/python2.7/dist-packages/pycharm-debug.pth
最后,验证设置:
pi@mediapi ~ $ python -c 'import pydevd; print pydevd'
<module 'pydevd' from '/usr/local/lib/python2.7/dist-packages/pycharm-debug.egg/pydevd.py'>
太酷了,调试模块已连接好。开始调试脚本。我将调试为这篇文章编写的侦听器脚本。
PyCharm设置
在PyCharm中,转到 Run -> Edit Configurations...
点击+
左上角的标志,然后选择Python Remote Debug
。只需为其命名,remote debug
就可以完成。点击确定。
现在单击Run -> Debug 'remote debug'
,您将在调试控制台中看到一条消息,Use the following code to connect to the debugger
复制这些行,以我为例,它们最终看起来像这样:
import pydevd
pydevd.settrace('localhost', port=56112, stdoutToServer=True, stderrToServer=True)
将它们粘贴到要调试的文件的顶部,然后保存文件。
在不使用文件同步插件的情况下,我使用rsync复制文件:
[berto@g6]$ rsync -av ./ pi@mediapi:broadcast/
现在,注意配置说localhost
。连接调试器的最佳方法是使用SSH的端口转发功能,以便RPi可以放在您的办公桌上或全球范围内,并且工作方式相同。使用以下命令通过SSH进入RPi,以将远程端口链接到本地端口:
[berto@g6]$ ssh -R 56112:localhost:56112 pi@mediapi
PyCharm应该向您显示一条消息 Waiting for process connection...
在RPi上,运行程序,您将看到调试器启动。默认情况下,它会在pydevd行之后的行上暂停,您可以根据需要在配置中进行更改。
到那时,您正在远程调试!:)