У меня есть приложение GAE, которое я хочу интегрировать с Sendgrid. Я выполнил инструкции (https://cloud.google.com/appengine/docs/python/mail/sendgrid) о том, как установить Sendgrid, и все работает отлично в моей локальной среде.Не удалось импортировать sendgrid в приложение GAE
Однако, когда я нажимаю мое приложение GAE и запустить его, я сразу же получить следующую ошибку 500 сервера:
Error: Server Error
The server encountered an error and could not complete your request. Please try again in 30 seconds.
Даже при отладке на, это все, что я получаю. Но копаться в логах на GAE Я могу видеть источник проблемы:
Traceback (most recent call last): File "/base/data/home/runtimes/python27/python27_lib/versions/1/google/appengine/runtime/wsgi.py", line 240, in Handle handler = _config_handle.add_wsgi_middleware(self._LoadHandler()) File "/base/data/home/runtimes/python27/python27_lib/versions/1/google/appengine/runtime/wsgi.py", line 299, in _LoadHandler handler, path, err = LoadObject(self._handler) File "/base/data/home/runtimes/python27/python27_lib/versions/1/google/appengine/runtime/wsgi.py", line 85, in LoadObject obj = ____import____(path[0]) File "/base/data/home/apps/....wsgi_app.py", line 16, in import sendgrid File "/base/data/home/apps/..../sendgrid/____init____.py", line 7, in from .client import SendGridAPIClient File "/base/data/home/apps/..../sendgrid/client.py", line 1, in import python_http_client ImportError: No module named python_http_client
Так что я пошел в sendgrid/client.py и закомментировал следующую строку кода ...
import python_http_client
Как только я это сделаю, я могу запустить свое приложение, не получив 500 Server Error, но тестовое письмо, которое я пытался отправить, не было доставлено (хотя я не получал никаких сообщений об ошибках при попытке инициировать его).
Не кажется правильным, что мне нужно прокомментировать строку кода Sendgrid, чтобы сделать импорт, и я не могу понять, почему другие, которые работают с Sendgrid с Python и GAE, не имеют одинаковых проблема. Любые мысли были бы оценены. Благодарю.
Perfect - это решило проблему. Спасибо Алекс. – dsedwards
Инструкции рекомендуют установить sendgrid через pip install sendgrid. Это должно заботиться о зависимостях, я думаю, это причина, по которой этот шаг не включен ... – dyeray
@dyeray, который работает на вашем локальном 'dev_appserver', но он не может работать на App Engine - вы не можете запускать 'pip' там! Мы работаем над исправлением документов (надеюсь, включая правильное использование https://cloud.google.com/appengine/docs/python/tools/libraries27#vendoring, отсутствующее в этой части документов), а не но настоятельно рекомендуется). –