mysqlclientがインストールできないエラー
今まで普通にDjangoでmysqlclientをインストールして動いていたのに、以下のようなエラーが出るようになってしまい、結構格闘したので記録として残しておきます。
django.core.exceptions.ImproperlyConfigured: Error loading MySQLdb module.
Did you install mysqlclient?
エラーメッセージ通りにインストールしてみる
一度インストールしたことがあっても、とりあえずエラーメッセージ通りにことを進めます。
初めてDjangoを触った時にも同じエラーが出たので、その時の記事を再度参考にします。
Django: macOSでのpip install mysqlclient エラーの解決法
以前はこの記事だけで解決できました。(slackで共有してたため、残ってました。)
しかし、これを試しても以下のようなエラーが出初めました。。。。
Installing dependencies from Pipfile.lock (e4a617)… An error occurred while installing mysqlclient==1.4.5 –hash=sha256:5c008e74b1c4a42271172c35f28a698cf79a7cba5d2bc811125e963f28001c34 –hash=sha256:6ad22de8ea3aba03ce1b202ed175e0c7a8b82fcdab8f57b1649c596550ed785a –hash=sha256:e80109b0ae8d952b900b31b623181532e5e89376d707dcbeb63f99e69cefe559! Will try again. 🐍 ▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉ 8/8 — 00:00:09 Installing initially failed dependencies… ・・・・・・・・・ pipenv.exceptions.InstallError: File install –record /private/var/folders/h8/w3l6v6px3vd5jgt_m5mslm8m0000gn/T/pip-record-7hwmllgt/install-record.txt –single-version-externally-managed –compile –install-headers /Users/yuya/projects/tutorial/djangoApp/.venv/bin/../include/site/python3.7/mysqlclient Check the logs for full command output.’] ERROR: ERROR: Package installation failed… ☤ ▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉ 0/1 — 00:00:06
もう、いろんなこと試しました。。
・pyenvとpipenvを再インストール
・pipenvのcacheの削除
・mysql_configの修正
途中、もう諦めてDjangoの開発はDockerでやってました。。
解決
とりあえず、しばらくしてから解決できたので、方法を残しておきます。
以下の記事がきっかけです。
https://teratail.com/questions/214631
$ brew info openssl
・・・・・・
If you need to have openssl@1.1 first in your PATH run:
echo 'export PATH="/usr/local/opt/openssl@1.1/bin:$PATH"' >> ~/.bash_profile
For compilers to find openssl@1.1 you may need to set:
export LDFLAGS="-L/usr/local/opt/openssl@1.1/lib"
export CPPFLAGS="-I/usr/local/opt/openssl@1.1/include"
For pkg-config to find openssl@1.1 you may need to set:
export PKG_CONFIG_PATH="/usr/local/opt/openssl@1.1/lib/pkgconfig"
・・・・・・
For compilers to find openssl@1.1 you may need to set:
の部分は、「opensslを見つけるためにセットする必要がありますよ」というメッセージなので、パスを通していきます。
下記の部分を.bash_profileに記述して完了です。
export LDFLAGS=”-L/usr/local/opt/openssl@1.1/lib”
export CPPFLAGS=”-I/usr/local/opt/openssl@1.1/include”