mysqlclient 1.3.13 or newer is required; you have 0.9.3

使用 django很多人都會遇到這個問題。
這是因為你使用了pymysql, 而pymysql的最高版本就只有0.9.3

django默認使用的是mysqlclient作為數據庫驅動,所以正確的方式是
卸載pymysql, 然后pip install mysqlclient

那為什么網上的解決方式大多都是仍然使用pymysql,然后修改django的源碼,從而跳過數據庫驅動的版本檢測呢?

主要原因是安裝mysqlclient太麻煩了,很可能安裝失敗。。。。

這里簡單的說一下這兩種方式的區別
pymysql是使用純python語言寫的,所以它的安裝很簡單,只需要

  • pip install PyMySQL

但是pymysql這個驅動有一個很大的特點,就是慢

mysqlclient 是一個使用了C語言開發的驅動,所以速度很快,但是它依賴了很多系統層面的軟件,所以安裝起來比較麻煩,需要我們額外安裝依賴。


關于怎么安裝mysqlclient
https://pypi.org/project/mysqlclient/
這個文檔里介紹的很詳細了。

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)

實測,在 macOS下還需要安裝mysql

  • brew install mysql

2. 如果是 python3 ,還需要安裝額外的依賴

  • sudo apt-get install python3-dev # debian / Ubuntu

  • sudo yum install python3-devel # Red Hat / CentOS

3. 在項目環境中安裝mysql-client

  • pip install mysqlclient

最后卸載我們已經下載的pymysql

  • pip uninstall PyMySQL

然后注銷掉下面兩行

import pymysql
pymysql.install_as_MySQLdb()

這個使用重啟 django就可以了。

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。