Django: 解決法 Error loading MySQLdb module.

掲題のエラー対応したので、備忘として記載。

事象

Djangoを稼働させるアプリケーションサーバのサービス起動後に下記のエラーメッセージが出力。

発生環境

CentOS 7.3, nginx/1.12.2, 10.2.19-MariaDB, Python 3.6, (ライブラリ:Django==2.1.3, gunicorn==19.9.0, PyMySQL==0.9.2)
アプリケーションサーバはgunicorn。

影響

DjangoアプリケーションにWebブラウザ経由でアクセスできない。

対応

__init__.pyファイルにインポート文を追記し改めてサービスを再起動することで事象は解消する。

追記先ファイル

app_root_folder/app_name/__init__.py

追記内容

原因

MariaDBへのアクセスを行うた為のライブラリ(PyMySQL)のインポート宣言が漏れていた為。開発環境ではmanage.pyでアプリケーションサーバを立てており、manage.pyには記載はあったものの、gunicorn用の宣言が漏れていた為。

開発時から本番想定の稼働環境をDocker等で用意しておくと良さそうな気がしてきた。