Pydev Extensions is now merged with Pydev, and its once closed source code has become open source. Thus, there is no more Pydev Extensions, only the open source Pydev, with all the capabilities of Pydev Extensions incorporated.
Изменился и сайт апдейта для eclipse - http://pydev.org/updates .
А что нам это дает? А это нам дает бесплатную штуку под названием "Debug 'server' for remote debugging", с помощью которой можно дебажить django очень удобным способом.
Для начала выполняем условия, как написано здесь, в том числе заносим в PYTHONPATH в настройках Eclipse путь примерно следующего содержания
"eclipse\plugins\org.python.pydev.debug_1.5.0.1251989166\pysrc\" (найдете у себя подобный) и запускаем сервер (из перспективы debug):
Добавляем следующий код в manage.py (после if __name__ == "__main__":) проекта, что дает нам возможность обернуть PyDev брейкпоинты в pydevd.settrace(), который пересылает трейс Debug Remote серверу (для теста рекомендую сначала использовать --noreload и pydevd.settrace(), и убедиться, что трейс возникает именно на Debug Remote server, так же можно попробовать запускать проект не в режиме дебага, а в режиме run, трейс должен отправляться в любом режиме):
import sys
if len(sys.argv) > 1:
command = sys.argv[1]
if settings.DEBUG and (command == "runserver" or command == "testserver"):
# Make pydev debugger works for auto reload.
try:
import pydevd
except ImportError:
sys.stderr.write("Error: " +
"You must add org.python.pydev.debug.pysrc to your PYTHONPATH.")
sys.exit(1)
from django.utils import autoreload
m = autoreload.main
def main(main_func, args=None, kwargs=None):
import os
if os.environ.get("RUN_MAIN") == "true":
def pydevdDecorator(func):
def wrap(*args, **kws):
pydevd.settrace(suspend=False)
return func(*args, **kws)
return wrap
main_func = pydevdDecorator(main_func)
return m(main_func, args, kwargs)
autoreload.main = main
А для чего мы это, собственно говоря, делали? А чтобы запускать runserver без --noreload. Чтобы и изменение кода и брейкпоинты обрабатывались "онлайн".
Примерно вот такая картина:
Абсурдное название статьи, такое ощущение что автор вообще не понимает зачем плагин PyDev в Eclipse
ОтветитьУдалитьДа и инфа наверно первоначально содрана с форрума http://python.su/forum/viewtopic.php?id=5281
1. Поясните, в чем абсурдность? Вы можете сделать тоже самое не используя Pydev?
ОтветитьУдалить2. Ссылка на форум. Прочитал, в принципе то же (см. ниже), но тема не раскрыта.
А инфа первоночально http://bear330.wordpress.com/2007/10/30/how-to-debug-django-web-application-with-autoreload/ отсюда, и я этого не скрывал, так как ссылка в статье есть.
ps. Ну и приветствую ссылки на ваши статьи, хочу почерпнуть знаний в не абсурдных заголовках и знающих текстов.
Не знаю, Анонимный-ли (которого комментарий выше) автор блога "night-fairy-tales.blogspot.com" или нет, но на следующий день на нем появилась статья "Django+Eclipse. Autoreload Django сервера в Debug режиме."
ОтветитьУдалитьНу как бы, тоже самое, только более подробно разжевано. Можно попробовать прочитать статью там, если у Вас что-то не получается.
:))))
ОтветитьУдалить"Можно попробовать прочитать статью там, если у Вас что-то не получается."
Не пойму только одного, зачем писать о том, что сам первоначально не попробовал?!
Да ты еще отлично изменил статью после прочтения моего поста :)))). Поздравляю, за перепечатывания 5! :)
ОтветитьУдалитьСам хоть пробовал? :)
Я изменил ее до прочтения твоего поста. Изменения символические, вставил пару скринов для ясности происходящего (для таких непонимающих, типа тебя).
ОтветитьУдалитьps. конечно не пробовал, зачем мне оно нужно?
Этот комментарий был удален автором.
ОтветитьУдалитьОдни тролли в каментах...
ОтветитьУдалитьЗа статью спасибо. Как раз ковыряю отладку в pydev. Хотя, до таких проблем еще даже и не дошел. Просто не могу элементарно отловить эксепшин. Никакого намека вообще на то, что что-то произошло. В Winpdb как-то попроще с этим, в консоли сразу все видно было.
Какой настырный спамер. Мне в блог тоже насрал. Вот бы поймать его за хвост и отбуцать морду лица.
ОтветитьУдалитьДействительно, первый спамер тут, которого я вижу. Как отладка, работает?
ОтветитьУдалитьТак и не разобрался с проблемой :) Так что в эклипсе ее не использую пока.
ОтветитьУдалить