pycharm社区版解决django的mysql的兼容问题

Posted 信仰coding

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了pycharm社区版解决django的mysql的兼容问题相关的知识,希望对你有一定的参考价值。

我电脑上面的MySQL是5.5.6,而刚开始安装的django版本是3.多,不支持现在MySQL的版本

解决方案是:

https://yuntianti.com/posts/fix-django3-mysqlclient-import-error/

下面进入正题:
安装Django3后不想折腾mysqlclient那堆库文件,直接装了pymysql替代mysqlclient。还是老办法,__init__.py 中patch一下:

import pymysql
pymysql.install_as_MySQLdb()

启动项目出现以下异常:

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.

看来是Django3对mysqlclient的要求提高了: 1.3.13. 但pymysql的版本没有跟上。
看了下tracelog指向的异常抛出处的代码, 发现如下代码片段:

 

 果然是有个版本判断并raise了异常,而且校验的是Database库的version_info属性。
那pymysql中的version_onfo属性是怎么返回的呢?找到pymysql源码,发现如下片段:

 

 

实际上pymysql版本号是 0.9.3,却明目张胆篡改version_info欺骗Django

以上是关于pycharm社区版解决django的mysql的兼容问题的主要内容,如果未能解决你的问题,请参考以下文章

pycharm社区版创建django项目(Windows 8.1)

如何使用 PYCHARM 社区版调试 Django 应用程序

PyCharm社区版+Django搭建web开发环境-1

Django在Pycharm社区版中的配置

PyCharm社区版配置Django 项目断点调试

从 PyCharm 社区版中的鼠标右键单击上下文菜单运行/调试 Django 应用程序单元测试?