Google Cloud Debugger не работает для виртуальных машин, управляемых Python AppEngine
Как было объявлено сегодня в разделе "Устранение неполадок при работе с облачным отладчиком", который теперь доступен для Python, предположительно, я теперь могу использовать отладчик Python.
Я использую управляемые виртуальные машины AppEngine на изображениях GCE, поэтому следую руководству по настройке Python в Compute Engine. Я изменил свой Dockerfile, чтобы добавить pip install google-python-cloud-debugger
(Я также попытался установить библиотеку прямо в мой app/lib, который включен в мой sys.path):
FROM gcr.io/google_appengine/python-compat
RUN pip install google-python-cloud-debugger
ADD . /app
И затем я изменил свой main.py, чтобы включить отладчик:
try:
import googleclouddebugger
googleclouddebugger.AttachDebugger()
except ImportError:
pass
К сожалению, когда я фиксирую код, запускаю gcloud preview app gen-repo-info-file
и нажмите его, я не могу использовать отладчик. Когда я захожу на https://console.developers.google.com/debug, он загружает мой репозиторий github справа, но я вижу сообщение об ошибке в левой области навигации:
Отладка недоступна. Вы можете отлаживать приложения Java, работающие на App Engine или Compute Engine
Есть идеи, что может пойти не так, или как отладить отладчик?
3 ответа
Хотя другой поток действительно предоставил много возможностей следовать распространенным рекомендациям по отладке, решение намного проще, чем мы себе представляли. Вероятно, что ошибки, которые вы видите, являются результатом того факта, что, согласно документации, управляемые виртуальные машины с python еще не являются поддерживаемой платформой для Cloud Debugger.
Однако с ростом сервиса Cloud Debugger и тем фактом, что Cloud Debugger с python вообще был только что анонсирован 7-го, вполне возможно, что это изменится.
Не стесняйтесь подавать Запросы о функциях в Общедоступном трекере облачной платформы, если вы заметили, что чего-то не хватает, и хотели бы сообщить нам, что это интересует вас и других, кто может решить эту проблему.
РЕДАКТИРОВАТЬ: Хотя ветка этого ответа содержит полезные шаги отладки, коренная причина проблемы объясняется в моем другом опубликованном ответе.
Скорее всего, здесь происходят две вещи:
Во-первых, ваша команда pip, работающая от имени обычного пользователя, хочет получить доступ к месту установки системы и завершается неудачно без прав root. Пытаться sudo pip install...
или же pip install -t lib/ google-python-cloud-debugger
,
Второе, что происходит, это то, что ваш код перехватывает ImportError и просто pass
ING. Я видел эту конструкцию раньше в своей жизни как говорящий на питоне, и, честно говоря, это дробовик, если я когда-либо видел его. Какая цель могла pass
обслуживать? Журнал ошибок быстро показывает проблему, если вы принимаете такие меры предосторожности.
Самый простой способ проверить правильность установки Python Cloud Debugger - попытаться импортировать его в интерактивную консоль Python:
docker run -i -t cdbgtest bin/bash
python
import googleclouddebugger
print googleclouddebugger.__version__
Я думаю, что в вашем случае pip install google-python-cloud-debugger
выходит из строя. Если это так, это, вероятно, из-за устаревших pip
, Установка pip
с sudo easy_install pip
бы решить это.