DjangoでMySQLを使ってマイグレーション時にエラーが発生し、結構はまったので、備忘録として残しておきます。
【環境】
・Windows10(VMWare Workstation15 player)
・Ubuntu20.04
・Python 3.8.2
【エラー対処方法】
「Did you install mysqlclient?」エラーが出た場合の対処方法
以下のようなエラーが発生した時
test@ubuntu:~/デスクトップ/python/myapp$ python manage.py makemigrations helloworld Traceback (most recent call last): File "/usr/local/lib/python3.8/dist-packages/django/db/backends/mysql/base.py", line 16, in <module> import MySQLdb as Database ModuleNotFoundError: No module named 'MySQLdb' The above exception was the direct cause of the following exception: Traceback (most recent call last): File "manage.py", line 21, in <module> main() ・ ・ ・ raise ImproperlyConfigured( django.core.exceptions.ImproperlyConfigured: Error loading MySQLdb module. Did you install mysqlclient? test@ubuntu:~/デスクトップ/python/myapp$
「pip install mysqlclient」をインストールする。
もし、「pip install mysqlclient」で次のようなエラーが出たら「sudo apt install libpython3.8-dev」を実行する
test@ubuntu:~/デスクトップ/python/myapp$ pip install mysqlclient Defaulting to user installation because normal site-packages is not writeable Collecting mysqlclient Using cached mysqlclient-2.0.1.tar.gz (87 kB) Using legacy setup.py install for mysqlclient, since package 'wheel' is not installed. Installing collected packages: mysqlclient Running setup.py install for mysqlclient ... error ERROR: Command errored out with exit status 1: command: /usr/bin/python3.8 -u -c 'import sys, setuptools, tokenize; sys.argv[0] ・ ・ (__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record /tmp/pip-record-yff8str7/install-record.txt --single-version-externally-managed --user --prefix= --compile --install-headers /home/test/.local/include/python3.8/mysqlclient Check the logs for full command output. test@ubuntu:~/デスクトップ/python/myapp$
sudo apt install libpython3.8-dev
この後にもう一度「pip install mysqlclient」を実行する。
問題なければこれでマイグレーションが実行できます。
以上です。ありがとうございました。
コメント