web-dev-qa-db-ja.com

Django-mysqlclientのインストールエラー:mysqlclient 1.3.13以降が必要です; 0.9.3があります

フォーラムをトロールしましたが、回答やこれに関するドキュメントすら見つかりません。

コマンドを実行すると:

python manage.py inspectdb

error:が表示されます

mysqlclient 1.3.13 or newer is required; you have 0.9.3

私は以下を含むすべての提案された修正を試しました:-upgrading pip -installing a different wheel(32 bitではなく32 bit)、つまりmysqlclient-1.4.2-cp37-cp37m-win32.whlコマンドでpip install mysqlclient-1.4.2- cp37-cp37m-win32.whl(これはエラーなしで正常に動作しますが、必要なジョブを実行しません!)

私の目的は、レガシーmysqlデータベース(XAMPPおよびmyphpadminの内部で実行されている)をDjangoに接続することです。私はmysqlclientをインストールする必要性を逃したドキュメントに従って、この時点で行き詰まっています。

27
MissComputing

これは私がそれを修正した方法です。

Django/db/backends/mysqlインストールディレクトリに移動します。エラーメッセージでパスを確認してください。

私はpipenvを使用しているので、私のパスは:

/home/username/.local/share/virtualenvs/project-env/lib/python3.7/site-packages/Django/db/backends/mysql

Base.pyファイルを開き、次を検索します。

version = Database.version_info

Ifとコメント行の中にpassを入れます:

improperlyConfiguredを発生させます( 'mysqlclient 1.3.13以降が必要です。%sがあります。'%データベース。バージョン

このような。

if version < (1, 3, 13):
   pass
   '''
   raise ImproperlyConfigured(
       'mysqlclient 1.3.13 or newer is required; you have %s.'
       % Database.__version__
   )
   '''

このファイルを保存して閉じ、operations.pyを開きます。

検索する:

query = query.decode(errors='replace')

デコードをエンコードに変更します

query = query.encode(errors='replace')

次に、サーバーを実行してみます。

45

あなたのプロジェクトはmysqlclientの代わりにpymysqlを使用していると思います。

プロジェクトで次のコードスニペットを検索してみてください。見つかった場合は、次の方法でこの問題を解決してください。

import pymysql
pymysql.install_as_MySQLdb()

この2つの間にコード行を挿入して、次のようにします。

import pymysql
pymysql.version_info = (1, 3, 13, "final", 0)
pymysql.install_as_MySQLdb()

次に、プロジェクトを開始してみます。

  • なぜpymysqlを使用していると知っているのですか? 0.9.3はpymysqlの最新バージョンにすぎないためです。
  • プロジェクトでmysqlclientの代わりにpymysqlを使用するのはなぜですか?インストールが簡単だからです。 pymysqlはシステムライブラリに依存しませんが、mysqlclientはlibmysqlclient-devなどの一連のシステムライブラリに依存します。
  • なぜmysqlclientのインストールが難しいのにDjangoがデフォルトで使用されているのですか?mysqlclientの方が高速でパフォーマンスが高いためです。プロジェクトに高いパフォーマンス要件がある場合は、上記の互換コードを削除してインストールすることをお勧めしますプロジェクトのmysqlclient。mysqlclientのインストール中にヘルプが必要な場合は、次のリンクを参照してください: How to install Python MySQLdb module using pip? 、and libssl-devpip install mysqlclientより前にインストールされています。
26
WisZhou

pymysqlが原因でmysqlclientの下位バージョンがインストールされたのと同じ問題が発生しました。

OS:Linux Mint 19.1

Python:.6.8

Django:2.2.2

  1. Mysqlclientをアンインストールします:pip3 uninstall mysqlclient
  2. Pymysqlをアンインストールします:pip3 uninstall pymysql
  3. Mysqlclientをインストールします:pip3 install mysqlclient
5
Aftabul Islam

この問題は、デフォルト設定でpycharmにDjangoプロジェクトを作成したときに発生します。Djangoのデフォルトバージョンが2.2.6であるため、= Djangoバージョンが2.1.7になり、ターミナルのエラーがなくなりました。

pip install Django==2.1.7

それで全部です!

5
NM666

内部設定を編集する代わりに、mysqlclientのバージョンをアップグレードしてみてください

pip3 install -U mysqlclient
4
fsalazar_sch

バリアントとして重要でない場合は、Django framework2.2.2(たとえば)から2.1にダウングレードしてください。

0

長い間この問題の解決策を見つけていました。私はUbuntu 18.04を使用していて、このソリューションがpythonバージョン3.7.5

ステップ1. Sudo apt-get installを介してlibpython3.7-devをインストールする

> Sudo apt-get install libpython3.7-dev

ステップ2:mysqlclientをインストールする

> python3 -m pip install mysqlclient==1.4.6
0
girishsaraf03

私は同様の問題がありました、私は得ていました

「Django.core.exceptions.ImproperlyConfigured:mysqlclient 1.3.13以降が必要です。1.3.12です。」

だから私はC:\Users\username\Envs\env\Lib\site-packages\Django\db\backends\mysqlbase.pyを開き、その行を変更しました...

if version < (1, 3, 13): 

に...

if version < (1, 3, 10):

これは私のバージョンよりも低いバージョンであり、動作しました。

0
Ngoni Mugandani
  1. ホイールを取り付ける:

    ピップインストールホイール

  2. ここから必要なファイルをダウンロードします: https://www.lfd.uci.edu/~gohlke/pythonlibs/#mysql-python

  3. ダウンロードディレクトリに移動します(おそらくcd Downloads

  4. ダウンロードしたファイルをインストールします:pip install <file name>

警告!!ダウンロードした.whlファイルの名前を編集できません。インストールに必要な情報が含まれています。

0