django2.2安裝錯誤最全的解決方案

安裝報錯類型,解決方案;

1. 數據庫連接報錯

mysqldb只支持python2,pymysql支持3,都是使用c寫的驅動,性能更好

# django中修改配置文件setting.py添加如下代碼:

import pymysql
pymysql.install_as_MySQLdb()

解決方案:

修改數據庫:mysqldb=>pymysql
2. 因爲切換數據庫導致版本錯誤
raise ImproperlyConfigured('mysqlclient 1.3.13 or newer is required; you have %s.' % Database.__version__)
django.core.exceptions.ImproperlyConfigured: mysqlclient 1.3.13 or newer is required; you have 0.9.3.

解決方案:

註釋掉檢測數據庫版本的代碼
# "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/django/db/backends/mysql/base.py", line 36, in <module>
 
# if version < (1, 3, 13):
#     raise ImproperlyConfigured('mysqlclient 1.3.13 or newer is required; you have %s.' % Database.__version__)
3. 切換數據庫導致轉碼錯誤
"/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/django/db/backends/mysql/operations.py", line 146, in last_executed_query
    query = query.decode(errors='replace')

解決方案: ==暫時使用第二種類型==

  1. 修改decode爲encode
  2. 把條件註釋掉,防止出現不可預知的錯誤,這個錯誤很可能是python2中類型str和unicode的原因,python3中只有unicode類型數據
# "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/django/db/backends/mysql/operations.py", line 146

 # if query is not None:
      #query = query.encode(errors='replace')

解決完成之後完美運行

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章