我有一個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服務器錯誤,但是我嘗試發送的測試電子郵件未送達(儘管我在嘗試啓動時未收到任何錯誤消息)。
似乎不正確,我需要註釋掉一行Sendgrid代碼才能導入導入工作,而我無法弄清楚爲什麼其他人使用Python和GAE運行Sendgrid時沒有相同的功能問題。任何想法將不勝感激。謝謝。
完美 - 解決了這個問題。感謝Alex。 – dsedwards
說明建議通過pip安裝sendgrid安裝sendgrid。這應該照顧的依賴,我想這是這一步不包括在內的原因... – dyeray
@dyeray,在你的本地'dev_appserver'工作,但它不能在App Engine上正常工作 - 你不能運行那裏有'點子'!我們正在努力解決這些文檔(希望能夠正確使用https://cloud.google.com/appengine/docs/python/tools/libraries27#vendoring,這也是文檔中缺少的部分 - 不是必須但強烈推薦)。 –