Отладка приложения Pylons через Eclipse - PullRequest
11 голосов
/ 29 сентября 2008

У меня есть настройка Eclipse с PyDev и мне нравится отлаживать мои скрипты / приложения. Я только начал играть с Pylons и подумал, есть ли способ запустить сервер Paster через Eclipse, чтобы я мог отлаживать свое веб-приложение?

Ответы [ 7 ]

10 голосов
/ 29 сентября 2008

Создание новой конфигурации запуска (Python Run)

Основная вкладка

Используйте paster-script.py в качестве основного модуля (вы можете найти его в подкаталоге Scripts вашего установочного каталога python)

Не забудьте добавить корневую папку вашего приложения в зону PYTHONPATH

Аргументы Также установите базовый каталог в корневую папку.

В качестве аргументов программы используется «serve development.ini» (или все, что вы используете для отладки приложения »)

Общая вкладка

Проверка выделения консоли и запуска в фоновом режиме

6 голосов
/ 06 января 2011

Если вы не хотите включать установку Python в рабочую область вашего проекта для получения paster, вы можете создать драйвер для чистого Python, например:

#!/usr/bin/env python

from paste.script.serve import ServeCommand

ServeCommand("serve").run(["development.ini"])

... и запустите / отладьте это в Eclipse.

Примечание: это работает без опции --reload, поэтому вы не получаете горячее развертывание (то есть вам нужно перезагрузить сервер, чтобы увидеть изменения). Кроме того, вы можете добавить опцию --reload, чтобы получить горячее развертывание, но тогда Pydev не остановится на ваших точках останова. Не могу съесть свой торт и съесть его ...

ServeCommand("serve").run(["--reload", "development.ini"])
2 голосов
/ 29 сентября 2010

Мне удалось заставить работать --reload, изменив «Рабочий каталог» на вкладке «Аргументы», чтобы он не использовал значение по умолчанию (т. Е. Выберите «Другое» -> Файловая система -> «Корень ваших пилонов» в приложении development.ini хранится.

2 голосов
/ 20 августа 2009

yanjost все правильно, просто хотел добавить, что вам нужно убедиться, что вы не используете опцию --reload, это предотвратит правильное присоединение отладчика и приведет к тому, что ваши точки останова не будут работать. Просто мелочь, в которую я вбежал.

1 голос
/ 17 декабря 2010

У меня тоже получилось (наконец-то). Я использовал buildout вместо virtualenv для установки пилонов (инструкции по адресу: http://wiki.pylonshq.com/display/pylonscommunity/Howto+install+Pylons+with+buildout),, поэтому вышеприведенные инструкции нужно было немного изменить, если идти по пути.

- для «Основного модуля» я использую:

${workspace_loc:myeclipseprojectname/bin/paster}

(добавление --reload сделало точки останова не работающими для меня, и я проверял это пару раз)

- для «Программных аргументов» я использую:

serve ${workspace_loc:myeclipseprojectname/mypylonsprojectname/development.ini}

- для «Рабочий каталог, Другое:», я использую:

${workspace_loc:myeclipseprojectname/mypylonsprojectname}

- как упоминалось выше, в «Общей вкладке» «Проверить выделение консоли и запуск в фоновом режиме»

- и не забудьте установить точку останова перед попыткой.

1 голос
/ 02 июня 2010

В Linux это, вероятно, будет / usr / bin / paster или / usr / local / bin / paster для скрипта вставки и для аргументов, которые у меня есть: serve $ {workspace_loc} $ {project_path} /development.ini

0 голосов
/ 29 апреля 2011

Это не совсем ответ на вопрос о том, как сделать это в затмении. Но я отлаживал paster-сервер с помощью winpdb, который является неплохим графическим отладчиком Python (вы можете установить его с помощью easy_install winpdb).

Просто запустите свой сервер, например ::1003*

winpdb /usr/local/bin/paster serve development.ini

И нажмите кнопку запуска.

Как сказал Уэйн, необходимо , а не использовать опцию --reload. По крайней мере, я не смог найти способ присоединения к реальному веб-приложению, даже когда выбирал, в который должен входить разветвитель разветвленных процессов (вход в разные процессы можно контролировать с помощью команд отладчика fork parent и fork child).

...