Archive for the ‘IDE’ Category

Remote debugging: PyCharm, pydev, rsync, django, postgis

Понедельник, Май 7th, 2012
Настройка удаленной отладки в 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’

Все! Теперь изменив код проекта я запускаю одну комманду и вижу изменения.

С этой связкой я не претендую на максимально оптимальный setup, но это для меня работает. Знаете способы настроить все удобнее? Буду рад прочесть о Вашем опыте в комментариях!

 

Настройка Eclipse для Python, Django & Mysql

Суббота, Декабрь 25th, 2010
Настройка Eclipse: Pydev Aptana и другие плагины

Настройка Eclipse: Pydev Aptana и другие плагины

Здесь я опишу какой софт я буду использовать и как его настроить, где скачать какие плагины и как их активировать.

IDE

Начнем с основного инструмента — IDE.
Использовать я буду Eclipse.

Где скачать:
http://www.eclipse.org/downloads/
Мне нужна версия дл 32битного Linux

http://www.eclipse.org/downloads/download.php?file=/eclipse/downloads/drops/R-3.6.1-201009090800/eclipse-SDK-3.6.1-linux-gtk.tar.gz

Я распаковал архив в домашнюю директорию.
Для запуска потребовалось поставить default-jre

sudo apt-get install default-jre

Это установит Java Runtime Environment.

(далее…)