使用 django
很多人都會遇到這個(gè)問題油坝。
這是因?yàn)槟闶褂昧?code>pymysql, 而pymysql
的最高版本就只有0.9.3
而django
默認(rèn)使用的是mysqlclient
作為數(shù)據(jù)庫驅(qū)動(dòng)掸宛,所以正確的方式是
卸載pymysql
, 然后pip install mysqlclient
么抗。
那為什么網(wǎng)上的解決方式大多都是仍然使用pymysql
,然后修改django
的源碼瓷胧,從而跳過數(shù)據(jù)庫驅(qū)動(dòng)的版本檢測呢?
主要原因是安裝mysqlclient
太麻煩了衡蚂,很可能安裝失敗泪喊。棕硫。。袒啼。
這里簡單的說一下這兩種方式的區(qū)別
pymysql
是使用純python
語言寫的哈扮,所以它的安裝很簡單,只需要
pip install PyMySQL
但是pymysql
這個(gè)驅(qū)動(dòng)有一個(gè)很大的特點(diǎn)蚓再,就是慢
而 mysqlclient
是一個(gè)使用了C
語言開發(fā)的驅(qū)動(dòng)滑肉,所以速度很快,但是它依賴了很多系統(tǒng)層面的軟件摘仅,所以安裝起來比較麻煩靶庙,需要我們額外安裝依賴。
關(guān)于怎么安裝mysqlclient
https://pypi.org/project/mysqlclient/
這個(gè)文檔里介紹的很詳細(xì)了娃属。
1. 安裝依賴
-
sudo apt-get install python-dev default-libmysqlclient-dev
# Debian / Ubuntu -
sudo yum install python-devel mysql-devel
# Red Hat / CentOS -
brew install mysql-client
# macOS (Homebrew)
實(shí)測六荒,在 macOS
下還需要安裝mysql
brew install mysql
2. 如果是 python3 ,還需要安裝額外的依賴
sudo apt-get install python3-dev
# debian / Ubuntusudo yum install python3-devel
# Red Hat / CentOS
3. 在項(xiàng)目環(huán)境中安裝mysql-client
pip install mysqlclient
最后卸載我們已經(jīng)下載的pymysql
pip uninstall PyMySQL
然后注銷掉下面兩行
import pymysql
pymysql.install_as_MySQLdb()
這個(gè)使用重啟 django
就可以了。