django.core.exceptions.ImproperlyConfigured:MySQLdbモジュールの読み込みエラー:MySQLdbという名前のモジュールはありません


94

MySQLのデータベースに接続しようとしているときに直面している問題。使用したデータベース設定も指定しました。

 Traceback (most recent call last):
 File "manage.py", line 10, in <module>
 execute_from_command_line(sys.argv)
 File "/home/ar/Desktop/test/testprac/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 453, in execute_from_command_line
utility.execute()
File "/home/ar/Desktop/test/testprac/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 392, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "/home/ar/Desktop/test/testprac/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 272, in fetch_command
klass = load_command_class(app_name, subcommand)
File "/home/ar/Desktop/test/testprac/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 77, in load_command_class
module = import_module('%s.management.commands.%s' % (app_name, name))
File "/home/arundhati/Desktop/test/testprac/local/lib/python2.7/site-packages/django/utils/importlib.py", line 35, in import_module
__import__(name)
File "/home/ar/Desktop/test/testprac/local/lib/python2.7/site-packages/django/core/management/commands/syncdb.py", line 8, in <module>
from django.core.management.sql import custom_sql_for_model, emit_post_sync_signal
File "/home/ar/Desktop/test/testprac/local/lib/python2.7/site-packages/django/core/management/sql.py", line 9, in <module>
from django.db import models
File "/home/ar/Desktop/test/testprac/local/lib/python2.7/site-packages/django/db/__init__.py", line 40, in <module>
backend = load_backend(connection.settings_dict['ENGINE'])
File "/home/ar/Desktop/test/testprac/local/lib/python2.7/site-packages/django/db/__init__.py", line 34, in __getattr__
return getattr(connections[DEFAULT_DB_ALIAS], item)
File "/home/ar/Desktop/test/testprac/local/lib/python2.7/site-packages/django/db/utils.py", line 93, in __getitem__
backend = load_backend(db['ENGINE'])
File "/home/ar/Desktop/test/testprac/local/lib/python2.7/site-packages/django/db/utils.py", line 27, in load_backend
return import_module('.base', backend_name)
File "/home/ar/Desktop/test/testprac/local/lib/python2.7/site-packages/django/utils/importlib.py", line 35, in import_module
__import__(name)
File "/home/ar/Desktop/test/testprac/local/lib/python2.7/site-packages/django/db/backends/mysql/base.py", line 17, in <module>
raise ImproperlyConfigured("Error loading MySQLdb module: %s" % e)
django.core.exceptions.ImproperlyConfigured: Error loading MySQLdb module: No module named MySQLdb

データベース設定::

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql', # Add 'postgresql_psycopg2', 'mysql', 'sqlite3' or 'oracle'.
        'NAME': 'ar_test_db',                      # Or path to database file if using 
        # The following settings are not used with sqlite3:
        'USER': '',
        'PASSWORD': '',
        'HOST': '',                      # Empty for localhost through domain sockets or   '127.0.0.1' for localhost through TCP.
        'PORT': '',                      # Set to empty string for default.
    }
}

助けてくれてありがとう!

回答:


136

python mysqlパッケージがインストールされていないようです。試してください:

pip install mysql-python

または仮想環境を使用しない場合(* nixホスト上):

sudo pip install mysql-python

仮想環境を使用していますか?物事を整理しておくことをお勧めします。これがオプションでない場合は、スーパーユーザー権限でpipを実行する必要があります。sudopip install mysql-python
Ron E

2
私は仮想環境を使用していて、mysql、djangoをインストールしています...しかし、python manage.py syncdbを実行すると、投稿したのと同じエラーが表示されます
getitstarted

万が一バージョンに問題がありますか?私はdjango 1.5、python 2.7.3をsql(14.14 for debian)で使用しています
getitstarted

4
Python 3の場合:pip install mysqlclient
sadalsuud

1
これはpython3では機能しません。python3では利用できないConfigParserが必要
gogagubi

40

あなたはpython-mysqldbをインストールする必要があります-MySQLへのPythonインターフェース

試す
sudo apt-get install python-mysqldb


38

mysqlclientをpipでインストールしようとしてエラーが発生した場合、mysql devライブラリが不足している可能性があります。以下を実行してインストールします。

apt-get install libmysqlclient-dev

mysqlclientのインストールを再試行します。

pip install mysqlclient

2
だったpip install mysqlclient。これを自分のrequirements.txtファイルに追加するのを忘れていたため、MySQLデータベースが存在し、データが入力されていても、Django Webサーバーはそれと対話できませんでした。
Blairg23、2017

この回答に感謝します。私の日を保存しました。私はmysqlをdjangoで2日間動作させようと試みてきました:)
rishabhr0y

13

私の答えは@ Ron-Eに似ていますが、エラー/修正がさらにいくつかあるので、MavericksおよびPython 2.7.6でMac OSXを使用するために以下の手順を実行します。

  1. Python mysqlパッケージをインストールします(成功メッセージが表示された場合は、以下の手順を無視してください)。

    pip install mysql-python
  2. 上記を実行すると、「EnvironmentError:mysql_config not found」というエラーが表示されました。 ここに画像の説明を入力してください これを修正するには、ターミナルで以下を実行します:

    export PATH=$PATH:/usr/local/mysql/bin
  3. 手順1を再実行すると、「エラー:コマンド 'cc'が終了ステータス1で失敗しました」という新しいエラーが表示されます。 ここに画像の説明を入力してください これを修正するには、ターミナルで以下を実行します:

     export CFLAGS=-Qunused-arguments
     export CPPFLAGS=-Qunused-arguments
  4. ステップ1を再実行し、成功メッセージ「Successfully installed mysql-python」を受け取りました!


提案をありがとう。私はあなたの問題の最初になりました。
user2772346 2015

私はあなたの方法に従ってきましたが、私の場合は常に最初のエラーが発生しています。そして `export CFLAGS = -Qunused-arguments`ターミナルの場合、そのエラーが発生します:-bash: export: =-Qunused-arguments': not a valid identifier
RegarBoy

12

Mac OS X Mountain LionでPyCharmのDjango開発環境をpython、mysql、sequel proアプリケーションでセットアップすると、このスレッドの所有者と同じエラーが発生しました。ただし、Mac OS Mountain Lion x86_x64(MySqlとPythonも同じアーキテクチャである必要があります)でpython-mysqldbを実行していて、pipなどのすべてをすでに試した人に対する私の答え。この問題を解決するには、次の手順を実行します。

  1. MySql for Pythonはこちらからダウンロードしてください
  2. ダウンロードしたファイルを解凍します。ターミナルウィンドウで次を実行します:tar xvfz downloade.tar。
  3. cd / to untared directory
  4. sudo python setup.py installを実行します
  5. 「環境エラー:/ usr / local / bin / mysql_config not found」などのエラーが発生した場合は、次のパスを追加してみてください:「export PATH = $ PATH:/ usr / local / mysql / bin」。しかし、idは役に立たず、別の解決策を見つけました。次のようなコマンド実行エラー出力の最後に:

    ファイル「/path_to_file/MySQL-python-1.2.4b4/setup_posix.py」、25行目、mysql_configでEnvironmentError( "%s not found"%(mysql_config.path、))を発生させる

  6. vimでsetup_posix.pyを開き、25行目に移動します(あなたの場合、同じバージョンでない限り、異なる場合があります)。

  7. mysqlに次のようなシンボリックリンクがない限り、25行目は編集後のようになります '/ usr / local / mysql / bin /':

    f = popen("%s --%s" % ('/usr/local/mysql/bin/mysql_config', what))

  8. この後、次のような別のエラーが発生しました:

    django.core.exceptions.ImproperlyConfigured:MySQLdbモジュールの読み込みエラー:dlopen(/Library/Python/2.7/site-packages/MySQL_python-1.2.4b4-py2.7-macosx-10.8-intel.egg/_mysql.so、2) :ライブラリが読み込まれていません:libmysqlclient.18.dylib参照元:/Library/Python/2.7/site-packages/MySQL_python-1.2.4b4-py2.7-macosx-10.8-intel.egg/_mysql.so理由:画像が見つかりません

  9. 最後に、コンソールで次のようにしました:

    sudo ln -s /usr/local/mysql/lib/libmysqlclient.18.dylib /usr/lib/libmysqlclient.18.dylib

現在、すべてが正常に動作します。ですから、Macを使用している人に役立つと思います。:)


どうもありがとう。mysql haha​​を使用して最初のプロジェクトを実行するだけで、ほぼ1週間かかりました。
ふew

トン男に感謝!あなたは私の日を救った!Macを使用していて、同じ問題が発生しました。
user2772346 2015

7

Python mysqldbライブラリがありません。このコマンド(Debian / Ubuntu用)を使用してインストールします。 sudo apt-get install python-mysqldb


これは答えですが、1行よりも多くの詳細を追加できればすばらしいと思います。ありがとう!
UliKöhler2014年

上記のコマンドは、PythonインターフェイスをMySQLデータベースにインストールするのに役立ちます。
Haimei 2014年



4

Ubuntu 16.04および18.04またはpython 3バージョンの場合

sudo apt-get install python3-mysqldb

4

pyhtonバージョン3.4以降を使用している場合。あなたはインストールする必要があります

sudo apt-get install python3-dev libmysqlclient-dev 

ターミナルで。次にpip install mysqlclient、仮想環境またはpipをインストールした場所にインストールします。


4

この環境でこの問題を解決しました:

$ pyenv --version
pyenv 1.2.9

$ python --version
Python 3.7.2

$ python -m django --version
2.1.7

./settings.py

DATABASES = {
    'default': {
        'NAME': 'my_db_name',
        'ENGINE': 'mysql.connector.django',   # 'django.db.backends.mysql'
        'USER': '<user>',
        'PASSWORD': '<pass>',
        'HOST': 'localhost',
        'PORT': 3306,
        'OPTIONS': {
            'autocommit': True,
        },
    }
}

を使用する場合は'ENGINE': 'mysql.connector.django'、ドライバをインストールして実行します。

$ pip install mysql-connector-python
Successfully installed mysql-connector-python-8.0.15 protobuf-3.7.0 six-1.12.0

$ pip install mysql-python私のために動作しませんでした。

を使用する場合は 'ENGINE': 'django.db.backends.mysql'、ドライバをインストールして実行する必要があります。
$ pip install mysqlclient

最後に実行します:
$ python manage.py migrate

それが問題なければ、PythonはこれらすべてのテーブルIDデータベースを作成します。

auth_group
auth_group_permissions
auth_permission
auth_user
auth_user_groups
auth_user_user_permissions
django_admin_log
django_content_type
django_migrations
django_session


2

ウィルと同じエラーメッセージが表示されますが、不足しているファイルがインストール中に追加されるため、最初にmysqlをインストールすることがうまくいきました。だから後

brew install mysql

pip install mysql-python

エラーなしで実行されました。


コマンド "/ usr / bin / python -u -c" import setuptools、tokenize; __ file __ = '/ private / var / folders / yn / nrq74lgs6kqdzcr035p_5g280000gn / T / pip-build-jwQcm5 / mysql-python / setup.py'; f = getattr(tokenize、 'open'、open)(file); code = f.read()。replace( '\ r \ n'、 '\ n'); f.close(); exec(compile(code、file、 'exec')) "install --record /var/folders/yn/nrq74lgs6kqdzcr035p_5g280000gn/T/pip-UmTWRJ-record/install-record.txt --single-version-externally-managed --compile"エラーで失敗しました/ private / var / folders / yn / nrq74lgs6kqdzcr035p_5g280000gn / T / pip-build-jwQcm5 / mysql-python /のコード1
tisuchi

2

これは私にも起こりました。Django開発者だけでなく、Flaskでも一般的なエラーになっていると思うので、この問題を解決する方法はbrewを使用することでした。

  1. brew install mysql
  2. sudo pip install mysql-python

このようにして、すべての問題が解決され、両方のフレームワークが完全に機能します。

PS:Macports(私のような)を使用している人にとって、醸造は異なるレベルで機能するため、これは問題になる可能性があります。私のアドバイスは、Macportsの代わりに醸造品を使用することです。

お役に立てれば幸いです。


1

私は同じ問題を抱えていました。以下は私の問題を解決しました

シェルでpip install pymysqlを実行します

次に、プロジェクトの起点ディレクトリにあるinit.pyファイル(settings.pyと同じ)を編集してから、

追加:

pymysqlをインポートする

pymysql.install_as_MySQLdb()

これで問題が解決するはずです。


「次に、プロジェクトの起点ディレクトリにあるinit.pyファイルを編集します」-どういう意味__init__.pyですか?
Alex Yu


0

他の答えを追加するために、Djangoを使用している場合は、Djangoをインストールする前にmysql-pythonをインストールすることをお勧めします。



0

エラーがこのような場合

django.core.exceptions.ImproperlyConfigured: Error loading MySQLdb module:
dlopen(/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/_mysql.so, 2): Library not loaded: 
/usr/local/opt/mysql/lib/libmysqlclient.20.dylib
Referenced from: /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/_mysql.so

次に試してください:

pip install python-mysqldb

0

同様の問題に直面しました。インストールしてみたmysql-pythonpip使用をが、gcc依存関係エラーのため失敗しました。

私のために働いた解決策

conda install mysql-python

私はすでにanacondaをインストールしていて、gccに依存していなかったことに注意してください。


詳細について教えてください
Ayush Vatsyayan

-2

Pythonフォルダーに対する権限がないようです。試すsudo chown -R $USER /Library/Python/2.7


-3

次の操作モードを試すことができます。
sudo python manage.py runserver 0.0.0.0:8000

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.