2008-09-29 11 views
11

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

ответ

10

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

Главная вкладка

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

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

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

в качестве аргументов программы используют "служат development.ini" (или что вы используете для отладки приложения ")

Common Tab

Check выделить консоль и запуск в фоновом режиме

2

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

1

В Linux, который, вероятно, будет/USR/BIN/Пастер или/USR/местные/бен/пластификатор для вставки сценария и аргументы у меня есть: служить $ {workspace_loc} $ {project_path} /development.ini

2

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

1

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

-для "Main Module", я использую:

${workspace_loc:myeclipseprojectname/bin/paster} 

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

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

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

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

${workspace_loc:myeclipseprojectname/mypylonsprojectname} 

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

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

6

Если вы не хотите включать в себя установку Python в рабочей области вашего проекта, чтобы получить Пастер, вы можете создать драйвер чисто 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"]) 
+0

Это также прекрасно работает для приложений Pyramid. – Seth

0

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

Просто запустите ваш сервер т.д .:

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

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

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

+0

Я также узнал, что в моем случае, позволяющем repoze.profile, вызвал слишком глубокие рекурсии, когда paster запускается с winpdb. –

Смежные вопросы