环境 anaconda3 + python3.7 + django2.2 + mysql5.7
在运行python manage.py makemigrations appxxx时报错:
No module named 'MySQLdb'
网上有方案说改源码,但使用框架的原则是能不动源码就不动源码,所以继续找解及方案。
首先使用django文档搜索功能搜索:mysql,结果:
点击进入: 快速安装指南
https://docs.djangoproject.com/zh-hans/2.2/intro/install/
找到项目:设置数据库
点击 database installation information
https://docs.djangoproject.com/zh-hans/2.2/topics/install/#database-installation
找到项目: 运行你的数据库下的mysql并点击DB API driver
https://docs.djangoproject.com/zh-hans/2.2/ref/databases/#mysql-db-api-drivers
这里会有对mysql的要求,我们可以看到在MySQL DB API Drivers下有对mysql的api的要求,可以看出django对mysql的驱动不是mysqldb,也不是PyMySQL,而是mysqlclient ,而且要求1.3.13版本以上。
点击: mysqlclient
https://pypi.org/project/mysqlclient/
就可以看到怎么安装
pip install mysqlclient
因为我使用的是anaconda,所以需要使用这个安装。
第一步: anaconda search -t conda mysqlclient
第二步:anaconda show anaconda/mysqlclient
第三步:conda install --channel https://conda.anaconda.org/anaconda mysqlclient
这样就安装好了,接下来在运行:python manage.py makemigrations appxxx,就不会报错了。