前提・実現したいこと
Python: 3.6.6
Django: 2.1
MySQL: 5.7
Dockerに接続しようとした際、
ModuleNotFoundError: No module named 'MySQLdb' というエラーが発生しました。
mysqlclientはインストール済みです。
調べても、Python3以降なら「MySQLdb」は使えないので他のドライバー(例:mysqlclient)をインストールしてね
というような情報しか出てこず、お手上げです。
解決法のご教示よろしくお願い致します。
発生している問題・エラーメッセージ
root@635a7798577c:~/mysite2/mysite2# python3 manage.py runserver 0.0.0.0:8000 Unhandled exception in thread started by <function check_errors.<locals>.wrapper at 0x7f629a2bb9d8> Traceback (most recent call last): File "/usr/local/lib/python3.6/site-packages/django/db/backends/mysql/base.py", line 15, 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 "/usr/local/lib/python3.6/site-packages/django/utils/autoreload.py", line 225, in wrapper fn(*args, **kwargs) File "/usr/local/lib/python3.6/site-packages/django/core/management/commands/runserver.py", line 109, in inner_run autoreload.raise_last_exception() File "/usr/local/lib/python3.6/site-packages/django/utils/autoreload.py", line 248, in raise_last_exception raise _exception[1] File "/usr/local/lib/python3.6/site-packages/django/core/management/__init__.py", line 337, in execute autoreload.check_errors(django.setup)() File "/usr/local/lib/python3.6/site-packages/django/utils/autoreload.py", line 225, in wrapper fn(*args, **kwargs) File "/usr/local/lib/python3.6/site-packages/django/__init__.py", line 24, in setup apps.populate(settings.INSTALLED_APPS) File "/usr/local/lib/python3.6/site-packages/django/apps/registry.py", line 112, in populate app_config.import_models() File "/usr/local/lib/python3.6/site-packages/django/apps/config.py", line 198, in import_models self.models_module = import_module(models_module_name) File "/usr/local/lib/python3.6/importlib/__init__.py", line 126, in import_module return _bootstrap._gcd_import(name[level:], package, level) File "<frozen importlib._bootstrap>", line 994, in _gcd_import File "<frozen importlib._bootstrap>", line 971, in _find_and_load File "<frozen importlib._bootstrap>", line 955, in _find_and_load_unlocked File "<frozen importlib._bootstrap>", line 665, in _load_unlocked File "<frozen importlib._bootstrap_external>", line 678, in exec_module File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed File "/root/mysite2/mysite2/shop/models.py", line 26, in <module> class Book(models.Model): File "/usr/local/lib/python3.6/site-packages/django/db/models/base.py", line 139, in __new__ new_class.add_to_class(obj_name, obj) File "/usr/local/lib/python3.6/site-packages/django/db/models/base.py", line 304, in add_to_class value.contribute_to_class(cls, name) File "/usr/local/lib/python3.6/site-packages/django/db/models/fields/related.py", line 1583, in contribute_to_class self.remote_field.through = create_many_to_many_intermediary_model(self, cls) File "/usr/local/lib/python3.6/site-packages/django/db/models/fields/related.py", line 1046, in create_many_to_many_intermediary_model 'db_table': field._get_m2m_db_table(klass._meta), File "/usr/local/lib/python3.6/site-packages/django/db/models/fields/related.py", line 1504, in _get_m2m_db_table return utils.truncate_name(m2m_table_name, connection.ops.max_name_length()) File "/usr/local/lib/python3.6/site-packages/django/db/__init__.py", line 33, in __getattr__ return getattr(connections[DEFAULT_DB_ALIAS], item) File "/usr/local/lib/python3.6/site-packages/django/db/utils.py", line 202, in __getitem__ backend = load_backend(db['ENGINE']) File "/usr/local/lib/python3.6/site-packages/django/db/utils.py", line 110, in load_backend return import_module('%s.base' % backend_name) File "/usr/local/lib/python3.6/importlib/__init__.py", line 126, in import_module return _bootstrap._gcd_import(name[level:], package, level) File "<frozen importlib._bootstrap>", line 994, in _gcd_import File "<frozen importlib._bootstrap>", line 971, in _find_and_load File "<frozen importlib._bootstrap>", line 955, in _find_and_load_unlocked File "<frozen importlib._bootstrap>", line 665, in _load_unlocked File "<frozen importlib._bootstrap_external>", line 678, in exec_module File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed File "/usr/local/lib/python3.6/site-packages/django/db/backends/mysql/base.py", line 20, in <module> ) from err django.core.exceptions.ImproperlyConfigured: Error loading MySQLdb module. Did you install mysqlclient?
試したこと①
mysqlclient はインストール済みなので、
~/PycharmProjects/mysite2/mysite2$ pip install mysqlclient Requirement already satisfied: mysqlclient in /home/ユーザ名/testdir/lib/python3.6/site-packages (1.3.13)
となります。
試したこと②
ターミナルからデータベースのデータを取得することができるので、settings.py の問題ではなさそうです。
>>> Book.objects.get(id=3) <Book: Java ベーシック講座テキスト>
よろしくお願い致します。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/10/03 06:06 編集