pymysql 버전 0.9.3,django2.X 필요 >=1.3.13 버전

2544 단어 django
컨디션
django 버전: 2.2.1
python 버전: 3.6.6
django 프로젝트를 구축하고 mysql 데이터베이스를 설정할 때 데이터베이스를 이전할 수 없는 문제에 부딪혔습니다. 오류 정보는 다음과 같습니다.
django.core.exceptions.ImproperlyConfigured: mysqlclient 1.3.13 or newer is required; you have 0.9.3.

문제 분석 프로세스
오류 정보에서 알 수 있듯이 mysqlclient라는 패키지 버전이 일치하지 않아 발생한 문제입니다.
검색엔진 검색 관련 오류,python이 mysql에 접근하려면 대응하는 드라이버를 설치해야 하며, mysql의 API 인터페이스를python 형식으로 변환하여 데이터베이스 응용 소프트웨어 개발자가 직접 호출할 수 있는 제3자 라이브러리로 전환해야 한다.django2.2 기본적으로'mysqlclient'라는 라이브러리를 사용하여 mysql를 연결하는데 인터넷의 많은 강좌에서'pymysql'을 사용합니다.이 두 라이브러리는 어떤 차이가 있습니까?검색을 계속합니다.
pymysql, mysqlclient와 mysqldb
pypi에서pymsql에 대한 설명: 순수한 Python MySQL 드라이버 - MySQL의 Python 인터페이스입니다.PyMySQL 최신 버전 0.9.3, 공식 문서에 따르면 "This package contains a pure-Python MySQL client library"– 순수한python 언어로 개발된 mysql 드라이브 라이브러리로 대부분의 API는 mysqlclient와 MySQLdb를 호환하고,python2는 2.7버전만 지원하며,python3버전은 3.4 및 이전 버전을 지원하며, mysql버전은 5.5버전 및 이상을 요구한다.
pypi에서 mysqlclient에 대한 설명: MySQL 드라이버 - MySQL의 Python 인터페이스.최신 버전 1.4.x,python3 지원.django 문서에 "mysqlclient is a native driver. It's the recommended choice"– mysqlclient는 기본 드라이버입니다.추천하는 선택입니다.
pypi에서 mysqldb에 대한 설명: MySQL 드라이버 - MySQL의 Python 인터페이스.최신 버전 MySQL-python 1.2.x.현재 MySQL -3.23에서 5.5, Python-2.4에서 2.7을 지원합니다.Python-3.0은 향후 릴리즈에서 지원됩니다.PyPy 지원.
종합: 1, 셋 다python과 mysql의 상호작용 인터페이스로 사용할 수 있다.2,django 문서에 "Django는 mysqlclient 1.3.13 이상의 버전이 필요합니다."즉django2.2.x는 0.9.3 버전을 지원하지 않습니다.3, 우리는pymysql를 이렇게 가져왔습니다.
import pymysql
pymysql.install_as_MySQLdb()

install_as_MySQLdb () 방법은 "이 함수를 호출하면 MySQLdb나 mysql를 가져오면 자신도 모르게 실제pymysql를 사용합니다."라고 설명합니다.그pymysql버전은 0.9.3이므로 버전을 검사할 때 통과할 수 없습니다.
해결 방법:
1,pymysql이 아닌 mysqlclient를 사용하고 pip를 설치하면 됩니다. 가져오는 방법은 다음과 같습니다.
import MySQLdb

2,django 버전을 1로 낮추기x.x
3, mysqlclient 사용

좋은 웹페이지 즐겨찾기