Django製アプリをGoogle App Engineにデプロイした時の「No module named 'MySQLdb'」エラーについて
https://github.com/priyankavergadia/Django-Dialogflow-GoogleVisionAPI
↑のDjangoのチャットボットをリンク先のドキュメントを元に動かそうとしていますが、
最後のGoogle app engineへのデプロイのところで詰まっています。
■発生している問題
python manage.py runserver
では問題なく動くのですが、
gcloud app deploy
をした際、デプロイが成功したように見えるのですが、
指定されたURLをブラウザで開くと「502 Bad Gateway」が表示されてしまいます。
Google app engine のログビューアで確認すると、
textPayload: "Traceback (most recent call last):
File "/env/lib/python3.7/site-packages/gunicorn/arbiter.py", line 583, in spawn_worker
worker.init_process()
File "/env/lib/python3.7/site-packages/gunicorn/workers/gthread.py", line 104, in init_process
super(ThreadWorker, self).init_process()
File "/env/lib/python3.7/site-packages/gunicorn/workers/base.py", line 129, in init_process
self.load_wsgi()
File "/env/lib/python3.7/site-packages/gunicorn/workers/base.py", line 138, in load_wsgi
self.wsgi = self.app.wsgi()
File "/env/lib/python3.7/site-packages/gunicorn/app/base.py", line 67, in wsgi
self.callable = self.load()
File "/env/lib/python3.7/site-packages/gunicorn/app/wsgiapp.py", line 52, in load
return self.load_wsgiapp()
File "/env/lib/python3.7/site-packages/gunicorn/app/wsgiapp.py", line 41, in load_wsgiapp
return util.import_app(self.app_uri)
File "/env/lib/python3.7/site-packages/gunicorn/util.py", line 350, in import_app
__import__(module)
File "/srv/main.py", line 1, in <module>
from mysite.wsgi import application
File "/srv/mysite/wsgi.py", line 16, in <module>
application = get_wsgi_application()
File "/env/lib/python3.7/site-packages/django/core/wsgi.py", line 12, in get_wsgi_application
django.setup(set_prefix=False)
File "/env/lib/python3.7/site-packages/django/__init__.py", line 19, in setup
configure_logging(settings.LOGGING_CONFIG, settings.LOGGING)
File "/env/lib/python3.7/site-packages/django/conf/__init__.py", line 57, in __getattr__
self._setup(name)
File "/env/lib/python3.7/site-packages/django/conf/__init__.py", line 44, in _setup
self._wrapped = Settings(settings_module)
File "/env/lib/python3.7/site-packages/django/conf/__init__.py", line 107, in __init__
mod = importlib.import_module(self.SETTINGS_MODULE)
File "/opt/python3.7/lib/python3.7/importlib/__init__.py", line 127, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "/srv/mysite/settings.py", line 82, in <module>
import MySQLdb as sql # noqa: 402
ModuleNotFoundError: No module named 'MySQLdb'"
と表示されます。
MySQLdbのモジュールの読み込みに問題が生じているのだとは見えるのですが、
runserver
では正常に動くのに、GAE上ではエラーが出る理由がわからず困っております。
ちなみに、setting.py上の表記は、
# Install PyMySQL as mysqlclient/MySQLdb to use Django's mysqlclient adapter
# See https://docs.djangoproject.com/en/2.1/ref/databases/#mysql-db-api-drivers
# for more information
import MySQLdb # noqa: 402
としていて、
pip install mysqlclient
でインストールは完了しております。
GAE上でMySQLdbモジュールを読み込みためには何か追加で設定が必要なのでしょうか。
アドバイスいただけますと幸いです。
■問題の発生した環境
・Windows10
・Python 3.7.3 (default, Mar 27 2019, 17:13:21) [MSC v.1915 64 bit (AMD64)] :: Anaconda, Inc. on win32
・django 2.2.4
・MySQL 第2世代5.7