Перевірте 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, який ви можете змінити в конфігурації, якщо хочете.
І в цей момент ви віддалено налагоджуєте! :)