Проверьте 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, которую вы можете изменить в конфигурации, если хотите.
И в этот момент вы дистанционно отлаживаете! :)