web-dev-qa-db-ja.com

MySQLdbモジュールの読み込みエラー 'mysqlclientまたはMySQL-pythonをインストールしましたか?'

私はpython34を使用してDjangoプロジェクトにWindows 10コマンドラインを使用していますが、SQLの問題に直面しています。

すでにpip install mysqlclient==1.3.5を使用してmysqlclientをインストールし、妄想ではないことを確認するためにファイルを見つけました。次に、python manage.py migrateを実行して、テーブルをSQLデータベースに移行しました(phpmyadminを使用しています)。ただし、コマンドが...で返されたとき.

 File "C:\Users\user\env\lib\site-packages\Django\db\backends\mysql\base.py", line 30, in <module>
    'Did you install mysqlclient or MySQL-python?' % e
Django.core.exceptions.ImproperlyConfigured: Error loading MySQLdb module: No module named 'MySQLdb'.
Did you install mysqlclient or MySQL-python?

これらのような質問は既に存在することは承知していますが、1つの解決策が試みに影響を与えたとは思えません。前もって感謝します。

24
PrimeBenefiter
pip install pymysql

次に、プロジェクトのOrigin dirの__init__.pyファイルを編集します(settings.pyと同じ)

追加:

import pymysql

pymysql.install_as_MySQLdb()
104
aforwardz

python 3への移行後に同じ問題に直面しました。どうやら、MySQL-pythonは互換性がないため、公式の Django docs 、インストール済み mysqlclient を使用してpip install mysqlclient Macの場合。ドキュメントに記載されているOS固有の問題があることに注意してください。

docs からの引用:

前提条件

PythonおよびMySQL開発ヘッダーとライブラリを次のようにインストールする必要がある場合があります。

Sudo apt-get install python-dev default-libmysqlclient-dev#Debian/Ubuntu

Sudo yum install python-devel mysql-devel#Red Hat/CentOS

brew install mysql-connector-c#macOS(Homebrew)(現在、バグがあります。以下を参照)

Windowsには、MySQLConnector/CまたはMSVCなしでインストールできるバイナリホイールがあります。

Python 3に関する注意:python3を使用している場合は、次のコマンドを使用してpython3-devをインストールする必要があります:

Sudo apt-get install python3-dev#debian/Ubuntu

Sudo yum install python3-devel#Red Hat/CentOS

macOS上のMySQL Connector/Cのバグに関する注意

参照: https://bugs.mysql.com/bug.php?id=86971

MySQL Connector/Cのバージョンには、mysqlclient-pythonがインストールされている場合にコンパイルエラーを引き起こす不正なデフォルト設定オプションがある場合があります。 (2017年11月現在、これはhomebrewのmysql-connector-cおよび公式パッケージに当てはまることが知られています)

mysql_configを変更すると、これらの問題は次のように解決されます。

変化する

# on macOS, on or about line 112:
# Create options
libs="-L$pkglibdir"
libs="$libs -l "

# Create options
libs="-L$pkglibdir"
libs="$libs -lmysqlclient -lssl -lcrypto"

不適切なssl構成も問題を引き起こす可能性があります。 macOSの詳細については、例えばbrew info opensslをご覧ください。

PyPIからインストール

pip install mysqlclient

注:Windows用Wheelsは、ソースパッケージと共にリリースされない場合があります。最新のソースパッケージをインストールしようとするのを避けるため、requirements.txtにバージョンを固定する必要があります。

ソースからインストール

  1. git cloneまたは zipfile でソースをダウンロードします。
  2. site.cfgをカスタマイズ
  3. python setup.py install
8
Aniket Sinha

以下のコマンドを使用して問題を解決し、

pip install mysql-python
apt-get install python3-mysqldb libmysqlclient-dev python-dev

Debianで動作します

8
user2317231

python 3互換mysqlclientライブラリを使用していても、この問題は最近発生しましたが、少し変わった方法で問題を解決できました。 MySQL 8を使用している場合は、これを試して、それが役立つかどうかを確認してください! :)

libmysqlclient.21.dylibにあったMySQL 8.0.13の最新インストールにある/usr/local/mysql/libファイルのコピーを作成し、そのコピーを同じ名前で/usr/libに移動しました。

ただし、Macのセキュリティ整合性保護を一時的に無効にする必要があります。これを行うには、/usr/libの権限を無効にすることなく変更できないためです。これを行うには、リカバリシステムを起動し、上部のメニューで[ユーティリティ]をクリックし、ターミナルを開いてcsrutil disableと入力します。完了したら、セキュリティ整合性保護をオンに戻すことを忘れないでください!上記のプロセスとの唯一の違いは、代わりにcsrutil enableを実行することです。

MacOSのセキュリティ整合性保護を無効および有効にする方法の詳細については、こちらをご覧ください こちら

0
Xoadra

ピップ用

pip install pymysql

Pip3には、使用する必要があります

python3 -m pip install PyMySQL

次に、プロジェクトのOriginディレクトリ(settings.pyと同じ)のinit.pyファイルを編集します。追加:

import pymysql

pymysql.install_as_MySQLdb()
0