У меня есть настройка Eclipse с PyDev и я люблю отлаживать свои сценарии/приложения. Я только начал играть с Pylons и задавался вопросом, есть ли способ запустить сервер Paster через Eclipse, чтобы я мог отлаживать мой webapp?Приложение Debug Pylons через Eclipse
ответ
Создать новую конфигурацию запуска (Python Run)
Главная вкладка
Использование paster-script.py в качестве основного модуля (вы можете найти его в сценарии подкаталог в вашем питона каталоге установки)
не забудьте добавить корневую папку приложения в зоне PYTHONPATH
Аргументы Установите базовый каталог в корневую папку.
в качестве аргументов программы используют "служат development.ini" (или что вы используете для отладки приложения ")
Common Tab
Check выделить консоль и запуск в фоновом режиме
yanjost имеет это правильно, просто хотел добавить, что вам нужно убедиться, что вы не используете параметр --reload, это предотвратит правильное подключение отладчика и приведет к тому, что ваши точки останова не сработают. Просто маленькая вещь, на которую я столкнулся.
В Linux, который, вероятно, будет/USR/BIN/Пастер или/USR/местные/бен/пластификатор для вставки сценария и аргументы у меня есть: служить $ {workspace_loc} $ {project_path} /development.ini
Я смог получить - reload work, изменив «Рабочий каталог» на вкладке «Параметры», чтобы не использовать значение по умолчанию (т. Е. выберите «Другое» -> Файловая система -> «Корень вашего пилона», где хранится development.ini.
Я также получил эту работу (наконец). Я использовал 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}
, упомянутые выше, в «Общая вкладка», «Проверить выделение консоли и запуск в фоновом режиме»
- и не забудьте установить контрольную точку перед попыткой.
Если вы не хотите включать в себя установку 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"])
Это не реально ответить на вопрос о том, как сделать это в затмение. Но я отлаживал paster-сервер с winpdb, что довольно неплохое графическое отладчик python (вы можете установить его с помощью win_db.exe).
Просто запустите ваш сервер т.д .:
winpdb /usr/local/bin/paster serve development.ini
и нажмите кнопку запуска.
Как говорится, необходимо, чтобы не использовался - опция перегрузки. По крайней мере, я не смог найти, как подключаться к фактическому веб-приложению даже при выборе того, к которому должен входить отладчик процесса разветвления (ввод различных процессов можно контролировать с помощью команд «fork parent» и «fork child» отладчика).
Я также узнал, что в моем случае, позволяющем repoze.profile, вызвал слишком глубокие рекурсии, когда paster запускается с winpdb. –
Это также прекрасно работает для приложений Pyramid. – Seth