2013-03-20 3 views
14

Я только что обновил SDK App Engine 1.7.6 для своего приложения python и понял, что контрольные точки больше не работают в PyDev (плагин Eclipse) при использовании нового dev_appserver.py.PyDev Breakpoints в App Engine 1.7.6 сломан?

Кто-нибудь знает о способе включения их снова? Я предполагаю, что новый сервер порождает новый процесс для веб-сервера, а отладчик не присоединяется к нему. Я не уверен, как настроить его для этого.

Тем временем я использую сервер old_dev_appserver.py.

+1

«Больше не работает» Я имею в виду, что точки останова не запускаются в Eclipse IDE. – Dylan

+1

Я как раз собирался задать тот же вопрос – matcheek

+0

Я представил проблему в проекте AppEngine: https://code.google.com/p/googleappengine/issues/detail?id=9012 – matcheek

ответ

8

UPDATE 2012-07-27:

Этот комментарий, я проверил, проблема решена после обновления до PyDev. 2,8 и App Engine 1.8.2

ИСП:

Я нашел следующий анализ проблемы на googleappengine issues tracker

Причина, почему PDB не работает, потому что это dev_appserver использует STDIN/стандартный вывод для межпроцессного общения. Python имеет встроенные библиотеки для IPC: http://docs.python.org/2/library/ipc.html. dev_appserver должен использовать их, а затем stdin/stdout можно оставить только , чтобы PDB все еще работал.

Таким образом, кажется, что нет обходной путь, а не возвращаясь использовать old_dev_appserver.py

UPDATE 2013-04-23: Невозможность отладки раздражает. Многие разработчики жалуются, что

  1. PyDev Breakpoints in App Engine 1.7.6 broken?
  2. https://groups.google.com/forum/?fromgroups=#!topic/google-appengine/ep5BWYKpQpU
  3. https://groups.google.com/forum/?fromgroups=#!topic/google-appengine/TCQuJpF44cY
  4. https://code.google.com/p/appengine-devappserver2-experiment/issues/detail?id=28
  5. https://code.google.com/p/googleappengine/issues/detail?id=9012

Я отслеживании развития этого вопроса здесь: http://goo.gl/XRU01

+1

Просто к сведению, PyDev 2.8.0 теперь поддерживает новые крючки на Google App Engine, поэтому, отладка должна работать снова. См. Подробности о выпуске по адресу: http://pydev.org/ –

+0

У меня была такая же проблема, как у Дилана, и я подтверждаю, что она решена с помощью PyDev 2.8. –

+0

Спасибо за обновление, похоже, у нас есть достаточно доказательств, чтобы сделать вывод, что проблема ** окончательно решена. Лично я считаю, что это позор, который так долго. –

1

Вы имеете в виду, что pdb.set_trace() не работает?

Посмотрите на функции MonkeyPatchPdb() в Google/AppEngine/инструменты/dev_appserver.py

Run что somewehere в собственном проекте, прежде чем использовать PDB, и он должен это исправить.

+0

MonkeyPatchPdb, похоже, не существует в новом dev_appserver.py. Я не уверен, что PyDev использует Pdb, я просто устанавливаю точки останова в Eclipse IDE. Однако я попытался использовать pdb.set_trace, и это заставило скрипт выйти. – Dylan

+0

Как это должно работать: добавив код в ваш /main.py? из google.appengine.tools.dev_appserver импорт MonkeyPatchPdb импорт PDB MonkeyPatchPdb (PDB) –

3

Да, натолкнулся на ту же проблему.

Откройте Пуск/Настройка отладки и установки главного модуля для:

${GOOGLE_APP_ENGINE}/old_dev_appserver.py 
Смежные вопросы