Приложение Debug Pylons через Eclipse
У меня есть настройка Eclipse с PyDev и я люблю отлаживать свои скрипты/приложения. Я только начал играть с Pylons и задавался вопросом, есть ли способ запустить сервер Paster через Eclipse, чтобы я мог отлаживать мой webapp?
Ответы
Ответ 1
Создайте новую конфигурацию запуска (Python Run)
Основная вкладка
Используйте paster- script.py в качестве основного модуля (его можно найти в подкаталоге Scripts в каталоге установки python)
Не забудьте добавить корневую папку вашего приложения в зону PYTHONPATH
Аргументы
Также установите базовый каталог в корневую папку.
В качестве аргументов программы используйте "serve development.ini" (или все, что вы используете для отладки вашего приложения)
Общая вкладка
Проверить выделение консоли и запуск в фоновом режиме
Ответ 2
Если вы не хотите включать свою установку 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"])
Ответ 3
yanjost имеет это право, просто хотел добавить, что вам нужно убедиться, что вы не используете параметр --reload, это предотвратит правильное подключение отладчика и приведет к тому, что ваши контрольные точки не будут работать. Просто маленькая вещь, с которой я столкнулся.
Ответ 4
Мне удалось получить - reload work, изменив "Рабочий каталог" на вкладке "Параметры", чтобы не использовать по умолчанию (т.е. выберите "Другое" → Файловая система → "Корень вашего Pylons", где development.ini сохраняется.
Ответ 5
В Linux, который, вероятно, будет /usr/bin/paster или/usr/local/bin/paster для вставки script, а для аргументов у меня есть: serve ${workspace_loc} ${project_path}/development.ini
Ответ 6
Я также получил эту работу (наконец). Я использовал buildout вместо virtualenv для установки пилонов (инструкции: http://wiki.pylonshq.com/display/pylonscommunity/Howto+install+Pylons+with+buildout), поэтому приведенные выше инструкции нужно немного изменить до тех пор, пока пути идут.
-for "Основной модуль", я использую:
${workspace_loc:myeclipseprojectname/bin/paster}
(добавление - регрессивные точки останова не работают для меня, и я проверил это пару раз)
-for "Аргументы программы", я использую:
serve ${workspace_loc:myeclipseprojectname/mypylonsprojectname/development.ini}
-for "Рабочий каталог, другое:", я использую:
${workspace_loc:myeclipseprojectname/mypylonsprojectname}
- упомянутый выше, в "Общая вкладка", "Проверить выделение консоли и запуск в фоновом режиме"
- и не забудьте установить контрольную точку перед попыткой.
Ответ 7
Это не отвечает на вопрос о том, как это сделать в eclipse. Но я отлаживал paster-сервер с winpdb, что довольно неплохое графическое отладчик python (вы можете установить его с помощью win_db.exe).
Просто запустите свой сервер, например:
winpdb /usr/local/bin/paster serve development.ini
И нажмите кнопку запуска.
Как сказал wayne, необходимо не использовать параметр --reload. По крайней мере, я не смог найти, как подключаться к фактическому веб-приложению даже при выборе того, к какому приложению следует отлаживать отладчик процесса (ввод различных процессов может контролироваться командами отладчика "fork parent" и "fork child" ).