Remote debugging: PyCharm, pydev, rsync, django, postgis
Общие вопросы jetbrains pycharm, PyCharm, pycharm ключ, pycharm настройка
В своей работе я использую PyCharm — отличную среду разработки, которая много всего умеет, упрощает рутину(чем сильно повышает продуктивность разработчика) и вообще не заменима для Django-devелоперов.
В настоящий момент я работаю над проектом, который по ряду причин, не могу запустить на своей машине. Обновленный код приходится закачивать на сервер, перезапускать проект и только тогда я увижу как оно работает. Терять в удобстве разработки и отладки мне не хотелось. Поэтому пришел к использованию следующей связки инстурментов:
- На рабочей машине(Mac) разрабатываю под PyCharm
- В PyCharm как правило постоянно включена удаленная отладка.
- Для работы удаленной отладки в код проекта, необходимо внести 2 строки кода для запуска отладки и положить 1 файл, доступный в python-path.
- После внесения изменений в код, я на рабочей машине запускаю скрипт, который закачиваюет изменения на сервер с помощью rsync и перезагружает сервер проекта.
Про настройку удаленной отладки в PyCharm
В директорию проекта нужно положить файл из директории PyCharm под названием: pycharm-debug.egg. В Django-проекте я нахожу то место, которое мне нужно отладить и в начале отлаживамого def’а(например) ставлю следующий код:
sys.path.append(‘/home/webmail/src/pycharm-debug.egg’) from pydev import pydevd pydevd.settrace(’213.180.204.11′, port=32456, stdoutToServer=True, stderrToServer=True)IP адрес и порт – это те по которым внешний сервер будет стучаться для того, чтобы найти запущенный PyCharm, которому он выдаваст отладочную информацию. Адрес Необходимо, настроить NAT, чтобы такие запросы попадали на машину разработчика.
Так как я на сервере не использую Django Development Server, а вместо него — nginx+uwsgi, то в параметрах запуска uwsgi я указал 1 процесс. Иначе будут сложности с отладкой, из-за нескольких попыток подключиться к моему компьютеру.
Важно! Для удаленной отладки исходные коды должны быть идентичны на локальном и удаленном сервере, в противном случае, может проявиться странное поведение дебаггера.
Первые пол дня я использовал CyberDuck для закачивания обновленных файлов на сервер. Но мне это быстро надоело. И родилось решение, котором расскажет следующая часть этой статьи: про rsync.
Про загрузку файлов и перезапуск сервера
Я создал исполняемый(chmod +x) файл ~/bin/serversync:#!/bin/sh rsync -e ssh —progress -lzuogthvr —compress-level=9 /Users/username/Documents/src/ root@94.100.191.204:/home/webmail/src/ ssh root@94.100.191.204 supervisorctl restart all
И создал прописал его в alias. Для этого создал файл ~/.profile и написал в нем
alias servesync=’~/bin/serversync’Все! Теперь изменив код проекта я запускаю одну комманду и вижу изменения.
Даже если до окончания учебного года осталось немного стоит задуматься и купить детскую мебель чтобы ребенку было удобнее учить уроки и не только.
- 6 примеров сортировки в Python с помощью функции sorted
- Реально ли выиграть деньги в казино автоматы Вулкан?
- Слот Book of Guardians - в игровые автоматы Вулкан 777 казино сорви куш
- ПМ Казино Украина — райское местечко для любителей азартных игр
- Что можно делать с помощью Python?
- Как определить мощности виртуального сервера для своего проекта?
- Разработка компьютерной программы