1.起因
在django中爲了使用MySQL,一般是在項目目錄下的__init__.py中添加
import pymysql pymysql.install_as_MySQLdb() # 使用pymysql代替mysqldb連接數據庫
但是有的人使用卻會報錯,
raise ImproperlyConfigured('mysqlclient 1.4.0 or newer is required; you have %s.' % Database.__version__) django.core.exceptions.ImproperlyConfigured: mysqlclient 1.4.0 or newer is required; you have 0.10.1.
發生上面的錯誤,是因爲django版本>=2.2 ,
pymysql的mysqlclient版本是0.9.3,版本過低,所以出現了上面的情況,解決辦法如下
2. 解決辦法
1.簡單粗暴,直接改版本號
在setting.py的__init__.py裏
import pymysql pymysql.version_info = (1, 4, 13, "final", 0) pymysql.install_as_MySQLdb() # 使用pymysql代替mysqldb連接數據庫
2. 不再使用pymysql,安裝mysqlclient
python3環境下直接pip install mysqlclient,一般會報錯
解決辦法,如下
在pip安裝mysqlclient之前,先根據自己的環境做如下準備
windows環境
pip install mysqlclient‑1.4.6‑cp37‑cp37m‑win_amd64.whl
mac環境
$ brew install mysql-client $ echo 'export PATH="/usr/local/opt/mysql-client/bin:$PATH"' >> ~/.bash_profile $ export PATH="/usr/local/opt/mysql-client/bin:$PATH" $ pip install mysqlclient
Linux
#Debian / Ubuntu
$ sudo apt-get install python3-dev default-libmysqlclient-dev build-essential
#Red Hat / CentOS
$ sudo yum install python3-devel mysql-devel