程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式師世界 >> 編程語言 >  >> 更多編程語言 >> Python

django.core.exceptions.ImproperlyConfigured: mysqlclient 1.3.13 or newer is required; you have 0.9.3

編輯:Python
在ubuntu中建立django項目時,出現了錯誤,經過查閱相關資料及文檔,總結了一下解決這種錯誤的辦法,無論是在linux中,還是在windows或mac系統中,解決步驟都是相似的,就是文件的位置不同而已

第一步:

下載安裝PyMySQL,並在與項目同名的工程文件中的__init__.py中添加下列代碼。如果你的鏡像源還沒有換,可以參考Python切換pip鏡像源,更改之後,下載速度會變快很多

# 安裝pymysql
pip install pymysql
# __init__.py
import pymysql
pymysql.install_as_MySQLdb()

第二步:

  • 方法一:
    只需要降低django的版本就可以了。

    # 進入終端,有時根據pip版本而定,需要用pip3
    # 輸入pip uninstall django,卸掉django2.2
    C:\Users\Administrator>pip uninstall django
    # 輸入pip install django==2.1.4,安裝版本的django
    C:\Users\Administrator>pip install django==2.1.4
    

    如果卸載不掉,直接安裝也是可行的

  • 方法二:
    繼續使用當前版本(django=2.2)

    # 找到python 環境下的django包,然後進入到db下的backends下的mysql文件夾
    cd /home/wls/.local/lib/python3.6/site-packages/django/db/backends/mysql
    

    並不知道django的安裝目錄怎麼辦呢?繼續向下閱讀,辦法立即呈現

    # ubuntu系統或windows系統下
    # 進入終端,然後進入python,輸入下面的命令
    [email protected]:~$ python3
    Python 3.6.8 (default, Jan 14 2019, 11:02:34)
    [GCC 8.0.1 20180414 (experimental) [trunk revision 259383]] on linux
    Type "help", "copyright", "credits" or "license" for more information.
    >>> import django
    >>> print(django.__path__)
    ['/home/wls/.local/lib/python3.6/site-packages/django']
    # windows系統下進入終端
    C:\Users\Administrator>pip show django
    ......
    Location: f:\python\lib\site-packages
    

    上面兩種方法都可以找到django的安裝路徑,是不是很刺激

第三步:

在第二步方法二的基礎上,找到base.py文件,並用vi或vim打開base.py文件,注釋相關代碼,如下圖所示:

# 注釋 base.py 文件中的如下部分代碼
if version < (1, 3, 13):
raise ImproperlyConfigured('mysqlclient 1.3.13 or newer is required; you have %s.' % Database.__version__)

終於好了,大功告成,然後運行項目時還會出錯,此時應該播放一首涼涼,更適合現在的氛圍

報錯信息:
AttributeError: 'str' object has no attribute 'decode'

同樣是在上一步的目錄中找到operations.py文件並用vi或vim打開operations.py文件,注釋相關代碼:

# 注釋 operations.py 文件中的如下部分代碼(這個文件有點長,慢慢找),將decode修改為encode
# ubuntu 中 vim 用快捷鍵查找: ?decode
if query is not None:
query = query.decode(errors='replace')
return query
# 修改為
if query is not None:
query = query.encode(errors='replace')
return query

這下就大功告成了

你可能感興趣的文章

  • python中print打印顯示顏色
  • Python之深淺拷貝
  • 您不知道的Python中global、nonlocal哪些事兒

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式師世界 All Rights Reserved