programing

Django - mysqlclient 오류 설치: mysqlclient 1.3.13 이상이 필요합니다. 0.9.3이 있습니다.

oldcodes 2023. 10. 21. 10:49
반응형

Django - mysqlclient 오류 설치: mysqlclient 1.3.13 이상이 필요합니다. 0.9.3이 있습니다.

포럼을 뒤져봤지만 답을 찾을 수 없고 심지어 이에 대한 어떤 문서도 찾을 수 없습니다.www.testandtrack.io 과 같은 사이트를 다시 만드는 중

명령 실행 시:

python manage.py inspectdb

오류가 발생합니다.

mysqlclient 1.3.13 or newer is required; you have 0.9.3

다른 휠 설치(64비트 대신 32비트), 즉 mysqlclient-1.4.2-cp37-cp37m-win32를 포함하여 제안된 모든 수정을 시도했습니다.pip install mysqlclient-1.4.2-cp37-cp37m-win32.whl 명령을 사용하는 동안 오류 없이 잘 작동하지만 필요한 작업은 수행하지 않습니다.

제 목표는 단순히 레거시 mysql 데이터베이스(XAMPP와 myphpadmin 내부에서 실행)를 장고에 연결하는 것입니다.mysqlclient를 설치할 필요성을 누락한 설명서를 따랐는데, 이 시점에서 막혔습니다.

당신의 프로젝트는 mysql 클라이언트 대신 pymysql을 사용하는 것 같습니다.

프로젝트에서 다음 코드 조각을 검색해 볼 수 있습니다.발견되면 다음 방법을 사용하여 이 문제를 해결하십시오.

import pymysql
pymysql.install_as_MySQLdb()

이 둘 사이에 코드 라인을 삽입하여 다음과 같이 표시합니다.

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

그럼 프로젝트를 시작해 보세요.

  • 당신이 pymysql을 사용하는 것을 왜 내가 알 수 있습니까?0.9.3은 pymysql의 최신 버전이기 때문입니다.
  • 프로젝트에 mysql 클라이언트 대신 pymysql을 사용하는 이유는 무엇입니까?설치가 더 쉽기 때문입니다.pymysql은 시스템 라이브러리에 의존하지 않는 반면, mysql 클라이언트는 libmysqlclient-dev와 같은 일련의 시스템 라이브러리에 의존합니다.
  • mysql client는 설치가 어렵고 django는 기본적으로 사용하는 이유는 무엇입니까?왜냐하면 mysql 클라이언트가 더 빠르고 성능이 좋기 때문입니다.따라서 당신의 프로젝트가 높은 성능 요구사항을 가지고 있다면 위의 호환 코드를 제거하고 프로젝트에 mysqlclient를 설치하는 것을 제안합니다.mysqlclient를 설치하는 동안 도움이 필요한 경우 다음 링크를 참조하십시오.pip?사용하여 Python MySQLDB 모듈을 설치하는 방법 및 확인libssl-dev이전에 설치된 적이 있습니다.pip install mysqlclient.

이렇게 고쳤습니다.

django/db/backends/mysql 설치 dir로 이동합니다.오류 메시지에서 경로를 확인합니다.

pipenv를 사용하고 있으므로 경로는 다음과 같습니다.

/home/username/.local/share/virtualenvs/project-env/lib/python 3.7/site-packages/django/db/backends/

기존 환경을 사용할 경우 다음과 같은 이점이 있습니다.

<env_directory_name>/Lib/site-packages/django/db/base.py

base.py 파일을 열고 다음을 검색합니다.

version = Database.version_info

만약에 패스를 안에 넣고 댓글을 달면 됩니다.

raise Configured('mysqlclient 1.3.13 이상이 필요합니다. %s.' % Database가 있습니다.버전)

이것처럼.

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')

이제 서버를 실행해 보십시오.

@편집하다

이 대답이 나오기 전까지, 저는 그것을 해결할 다른 방법을 찾지 못했습니다.오늘날 이 문제를 해결하기 위한 더 나은 방법들이 있습니다.대답이 더 나은 접근법을 가지고 있습니다.

pymysql로 인해 mysql 클라이언트의 하위 버전이 설치되어 동일한 문제가 발생하였습니다.

OS: 리눅스 민트 19.1

파이썬: 3.6.8

장고: 2.2.2

  1. mysql 클라이언트 제거:pip3 uninstall mysqlclient
  2. pymysql :pip3 uninstall pymysql
  3. mysql 클라이언트 설치:pip3 install mysqlclient

이 문제는 기본 설정으로 pycharm에 Django project를 만들 때 발생합니다.django의 기본 버전이 2.2.6이기 때문에 발생하므로 django 버전을 2.1.7로 다운그레이드만 하면 단말기에 오류가 사라집니다.

pip install Django==2.1.7

그게 다예요!

저는 settings.py 을 열고 다음을 포함해서 잘 작동했습니다.

 import pymysql
 pymysql.version_info = (1, 4, 6, 'final', 0)
 pymysql.install_as_MySQLdb()

내부 구성을 편집하는 대신 mysqlclient의 버전을 업그레이드해 보십시오.

pip3 install -U mysqlclient

장고 3.2.3에서 'mysqlclient 1.3.13 이상'을 제거하려면 다음 솔루션이 필요합니다. 0.9.3 문제가 있습니다.

1) pip uninstall mysqlclient # remove old version 2) pip install mysqlclient==1.3.13 3) comment or remove the old workaround in __init__.py of the main app.

# workaround django.core.exceptions.ImproperlyConfigured: #Error loading MySQLdb module. #Did you install mysqlclient? #import pymysql #pymysql.install_as_MySQLdb()

  1. 휠 장착:

    파이프설치바퀴

  2. 여기서 원하는 파일 다운로드 : https://www.lfd.uci.edu/ ~gohlke/ pythonlibs/# mysql-

  3. Downloads 디렉토리로 이동합니다(다음과 같습니다).cd Downloads)

  4. 다운로드한 파일 설치 위치:pip install <file name>

경고!!다운로드한 .whl 파일의 이름을 편집할 수 없습니다.여기에는 설치에 필요한 몇 가지 정보가 포함되어 있습니다.

저도 비슷한 문제가 있었어요.

"django.core.exceptions.잘못 구성되었습니다. mysql 클라이언트 1.3.13 이상이 필요합니다. 1.3.12가 있습니다."

.C:\Users\username\Envs\env\Lib\site-packages\django\db\backends\mysql, base.py 을 열었고 그 선을 바꿨습니다...

if version < (1, 3, 13): 

...에게

if version < (1, 3, 10):

저보다 작은 버전인데 효과가 있었습니다.

당신에게 치명적이지 않다면, 변형자로서 당신의 것을 다운그레이드하세요.django framework부터2.2.2(예를 들어) 로2.1.

저는 오랫동안 이 문제에 대한 해결책을 찾고 있었습니다.Ubuntu 18.04를 사용하고 있었는데 이 솔루션이 python 버전 3.7.5에 유용하다는 것을 알았습니다.

1단계 sudo apt-get 설치를 통해 libpython 3.7-dev 설치

> sudo apt-get install libpython3.7-dev

2단계: mysqlclient 설치

> python3 -m pip install mysqlclient==1.4.6

ubuntu에서 Django와 함께 작업한다면, 나는 당신이 특정한 django 구성 파일을 편집하는 것보다 문제를 해결하기 위해 다음과 같은 방법을 제안할 것입니다.

터미널에서 다음 명령을 실행합니다.

  1. sudo apt-get install python3-dev default-libmysqlclient-dev build-필수

  2. pip install mysqlclient

아마도 당신의 장고 프로젝트는 pymysql을 사용할 것이고, mysql 클라이언트를 업그레이드하는 것이 아니라 그냥 하시오.

pip 설치 pymysql -U

이거 나한테 잘 어울려요! :D

제 경우에는 settings.py 또는 init.py __에서 pymysql 코드를 모두 삭제했습니다.mysql 클라이언트가 설치되어 있습니다.문제는 해결되었습니다.

github에도 같은 문제가 있습니다.저에게 딱 맞는 솔루션이 여기 있습니다.

한 작가의 말을 인용합니다.

pip 먼저 pymysql을 제거합니다(더 이상 작동하지 않는 것 같습니다.

그 다음에 pip install mysqlclient를 사용했습니다.

마지막으로 "pymysql" 수입품을 모두 확인하고 삭제했습니다.

꼭 가서 링크에 댓글에 좋아요 버튼을 눌러주세요.

내 것과 같은 가상 환경 디렉토리로 이동:

C:\Users\user\.virtualenvs\RPA-Orchestrator-Backend-GwIL98hN\Lib\site-packages\django\db\backends\mysql\base.py

여기서 한 줄을 편집하여 기본에서 오류가 발생하지 않도록 할 수 있습니다.py 파일,

version = Database.version_info
if version < (0, 9, 3):
   raise ImproperlyConfigured('mysqlclient 1.3.13 or newer is required; you have %s.' % Database.__version__)

그러면 당신의 문제가 해결될 겁니다.

언급URL : https://stackoverflow.com/questions/55657752/django-installing-mysqlclient-error-mysqlclient-1-3-13-or-newer-is-required

반응형