exceptions: django2.2/ mysql ImproperlyConfigured: mysqlclient 1.3.13 or newer is required; you have 0.9.3
在centos部署python应用后访问页面,显示如下异常信息
报错环境 python=3.6,django=2.2
……
django.core.exceptions.ImproperlyConfigured: mysqlclient 1.3.13 or newer is required; you have 0.9.3.
解决方法:
Django连接MySQL时默认使用MySQLdb驱动,但MySQLdb不支持Python3,因此这里将MySQL驱动设置为pymysql,使用 pip install pymysql 进行安装,然后在工程文件__init__.py添加以下代码即可。
1 2 | #安装pymysql pip install pymysql |
1 2 3 | #__init__.py import pymysql pymysql.install_as_MySQLdb() |
第一种:
django降到2.1.4版本就OK了
第二种(仍使用django 2.2版本):
1 2 3 | #找到Python环境下 django包,并进入到backends下的mysql文件夹 cd / opt / anaconda3 / envs / envAGC_Mini / lib / python3. 6 / site - packages / django / db / backends / mysql #文件列表如下 |
1 2 3 | # 找到base.py文件,注释掉 base.py 中如下部分(35/36行) if version < ( 1 , 3 , 3 ): raise ImproperlyConfigured( "mysqlclient 1.3.3 or newer is required; you have %s" % Database.__version__) |
此时仍会会报错,报错信息如下:
AttributeError: ‘str’ object has no attribute ‘decode’
1 2 3 4 5 6 7 8 9 | #找到operations.py文件(46行,版本不同行数不同哈~自个儿find一下),将decode改为encode #linux 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 |
修改保存之后,不再报错。
本博客文章均已测试验证,欢迎评论、交流、点赞。
部分文章来源于网络,如有侵权请联系删除。
转载请注明原文链接:https://www.cnblogs.com/sueyyyy/p/11157606.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
2018-07-09 jQuery添加和删除元素
2018-07-09 使用JQuery进行DOM操作
2018-07-09 类加载过程&对象的创建过程