私は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つの解決策が試みに影響を与えたとは思えません。前もって感謝します。
pip install pymysql
次に、プロジェクトのOrigin dirの__init__.pyファイルを編集します(settings.pyと同じ)
追加:
import pymysql
pymysql.install_as_MySQLdb()
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/CentOSmacOS上の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
にバージョンを固定する必要があります。ソースからインストール
git clone
または zipfile でソースをダウンロードします。site.cfg
をカスタマイズpython setup.py install
以下のコマンドを使用して問題を解決し、
pip install mysql-python
apt-get install python3-mysqldb libmysqlclient-dev python-dev
Debianで動作します
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のセキュリティ整合性保護を無効および有効にする方法の詳細については、こちらをご覧ください こちら 。
ピップ用
pip install pymysql
Pip3には、使用する必要があります
python3 -m pip install PyMySQL
次に、プロジェクトのOriginディレクトリ(settings.pyと同じ)のinit.pyファイルを編集します。追加:
import pymysql
pymysql.install_as_MySQLdb()