Django2.2 はPyMySqlに対応していません

Django2.2 はPyMySqlに対応していません

こんばんはエンジニアの眠れない夜です。

Djangoを使ってMySQLに接続するとこんなエラーが出ました。

python3 manage.py migrate
django.core.exceptions.ImproperlyConfigured: mysqlclient 1.3.13 or newer is required; you have 0.9.2.

いつもはPyMySqlを使ってサクッとこの問題を解決するのですが、なぜか今回はいろいろ設定を変えてみても一向にエラーが消えません…

mysqlclient をインストールしようとしてもこれはこれで別のバグがありいろんな方法を試してもうまくインストールできません…

pin install mysqlclient
Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-install-p66dwwfq/mysqlclient/

そのため、いつもPyMySqlを使っています。

しかし、今回はどうあがいてもエラーが出て先に進めないという事態に…

1日悩みに悩んだ挙げ句たどり着いた答えがこちら!

Django2.2はPyMySQLにまだ対応していません。

今後のアップデートでPyMySQLが利用できるようになるとは思いますが、現状Django2.2をインストールしてしまった人はDjango2.1を利用するか、もっと新しいバージョンが出ていればそちらを利用するようにしましょう。

Djangoのバージョンを変更する方法

できるだけ確実にやりたいのでDjangoをアンインストールします。そしてバージョンを指定してインストールし直せばOKです。

pip freeze で現在のバージョンを確認します。Django2.2と書いていれば今回の問題に該当します。

pip uninstall django でDjangoをアンインストールします。

pip install django==2.1 Djangoバージョン2.1を指定してインストールします。

最後に python3 manage.py migrate を実行してこちらのエラーが表示されなくなっていれば大成功です!

django.core.exceptions.ImproperlyConfigured: mysqlclient 1.3.13 or newer is required; you have 0.9.2.

※ PyMySQLはバージョン0.9.3を使用しました。

 

同じ問題に出くわしてしまった人が少しでも早く問題を解決して次に進めることを祈ります。

そして、Django2.2以降で早くPyMySqlが使えるようになるのを願うばかりです。

コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください