Django2.2报错-AttributeError: ''str'' object has no attribute ''decode'&am

Django2.2报错-AttributeError: ''str'' object has no attribute ''decode'&am,第1张

概述安装报错类型,解决方案; 1. 数据库连接报错 mysqldb只支持python2,pymysql支持3,都是使用c写的驱动,性能更好 # django中修改配置文件setting.py添加如下代码:import pymysqlpymysql.install_as_MySQLdb() 解决方案: 修改数据库:mysqldb=>pymysql 2. 因为切换数据库导致版本错误 raise Im

安装报错类型,解决方案;

1. 数据库连接报错

MysqLdb只支持python2,pyMysqL支持3,都是使用c写的驱动,性能更好

# django中修改配置文件setting.py添加如下代码:import pyMysqLpyMysqL.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')

解决方案: ==暂时使用第二种类型==

@H_419_32@修改decode为encode 把条件注释掉,防止出现不可预知的错误,这个错误很可能是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')

解决完成之后完美运行

总结

以上是内存溢出为你收集整理的Django2.2报错-AttributeError: ''str'' object has no attribute ''decode''--Error loading MySQLdb module全部内容,希望文章能够帮你解决Django2.2报错-AttributeError: ''str'' object has no attribute ''decode''--Error loading MySQLdb module所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/1191704.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-06-03
下一篇2022-06-03

发表评论

登录后才能评论

评论列表(0条)

    保存