現象
DjangoアプリをHerokuにデプロイしている時に、 No module named 'MySQLdb'
で詰まった。
Python3の時、PyMySQLでMySQLを使う場合に、manage.py
に
import pymysql
pymysql.install_as_MySQLdb()
と書くことがあり、ここでPyMySQLをMySQLdbという名前で読んでいるはずなので、No module named 'MySQLdb'
というエラーが出る場合ここがおかしい。
環境
Python 3.6.3
Django 1.11.7
PyMySQL 0.7.11
gunicorn 19.7.1
原因
よく考えれば単純で、gunicornでWSGIサーバーを立てているので、この場合manage.pyが呼ばれてない。
ローカルで開発するときにpython manage.py runserver
を叩いていて勘違いしてしまった。。。
manage.py
ではなく、wsgi.py
に
import pymysql
pymysql.install_as_MySQLdb()
を書いたら治った。
誤りがあればコメントくださると嬉しいです。。。