Confira PyCharm . Sou um cliente pagador feliz há anos, no entanto, uma edição gratuita da comunidade também está disponível.
Há um plug-in do observador de arquivos que copiará os arquivos para uma máquina remota (seu RPi). E tem a capacidade de executar depuração remota .
conecte os módulos de depuração
No que diz respeito à configuração da depuração remota PyCharm, a primeira coisa a fazer é conectar pycharm-debug.egg
. Estou em um Mac e, no meu caso, o arquivo está em /Applications/PyCharm.app/Contents/debug-eggs/pycharm-debug.egg
. Copiei para o meu RPi com o comando:
scp /Applications/PyCharm.app/Contents/debug-eggs/pycharm-debug.egg pi@mediapi:
Este arquivo precisa estar em algum lugar no caminho do Python para ser encontrado. Procurei um local adequado executando o seguinte:
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']
A partir dessa lista, acredito que /usr/local/lib/python2.7/dist-packages/
seja mais adequado (porque está dentro /usr/local
), então:
sudo mv pycharm-debug.egg /usr/local/lib/python2.7/dist-packages/
E precisamos de um .pth
arquivo para injetá-lo no caminho:
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
Por fim, verifique a configuração:
pi@mediapi ~ $ python -c 'import pydevd; print pydevd'
<module 'pydevd' from '/usr/local/lib/python2.7/dist-packages/pycharm-debug.egg/pydevd.py'>
Legal, os módulos de depuração estão conectados. Em para depurar um script. Vou depurar o script do ouvinte que escrevi para este post .
Configuração do PyCharm
No PyCharm, vá para Run -> Edit Configurations...
Bata no +
sinal no canto superior esquerdo e selecione Python Remote Debug
. Simplesmente dê um nome remote debug
e pronto! aperte ok.
Agora clique em Run -> Debug 'remote debug'
e você verá uma mensagem no console de depuração,Use the following code to connect to the debugger
Copie as linhas, no meu caso elas acabaram assim:
import pydevd
pydevd.settrace('localhost', port=56112, stdoutToServer=True, stderrToServer=True)
Cole-os na parte superior do arquivo que você está depurando e salve o arquivo.
Sem usar o plug-in de sincronização de arquivos, copio os arquivos usando o rsync:
[berto@g6]$ rsync -av ./ pi@mediapi:broadcast/
Agora, observe a configuração diz localhost
. A melhor maneira de conectar o depurador é usar os recursos de encaminhamento de porta do SSH para que o RPi possa estar em sua mesa ou ao redor do mundo e funcione da mesma maneira. SSH no RPi usando este comando para vincular a porta remota à porta local:
[berto@g6]$ ssh -R 56112:localhost:56112 pi@mediapi
PyCharm deve mostrar uma mensagem Waiting for process connection...
No RPi, execute o programa e você verá o depurador entrar. Por padrão, ele pausa na linha logo após a linha pydevd, que você pode alterar na configuração, se desejar.
E nesse ponto você está depurando remotamente! :)