python初学者在使用SqlAlchemy时候遇到的坑最多,国内网站的开发这好多都是班门弄斧,将别人的解决方案直接ctrl+V放到自己的博客中,也不知道是不是真的好用,这个对一些想要查找解决方案的群众是个莫大的干扰,有多少人遇到问题尝试上面说的各种方法,但最后问题还在那里,一动不动。话不多说,我遇到的问题是:

先说下背景:python3.6(这个很重要!python生态发展至今,各版本的包支持性鱼龙混杂,所以大家在查找问题时候一定要先声明你得版本号)

在使用flask-migrate包,将模型对象转化为数据库表的过程中,需要分别执行三个命令:

python manage.py db init      //创建migrate环境
python manage.py db migrate    //生成migrate版本文件
python manage.py db upgrade    //执行migrate更新

在执行init步骤是就开始报如下错误:


这时候不要相信网上说的一些方案,什么吧mysql的lib目录下的dll文件copy到python的site-packages目录下,什么网上下载两个dll文件放到python的site-packages目录下,统统不要信。

原因是:MySQLdb不支持python3.x,没错就这么简单

解决方案:python3.x中用了pymysql来代替MySQLdb,所以先要将pymysql包安装上:

pip install pymysql

再尝试一下,还有问题。因为包虽然安装了,但是默认他还是会找MySQLdb,所以我们需要手动指定一下,在应用主文件(__init.py__/app.py)中:

import pymysql
pymysql.install_as_MySQLdb()    //手动指定将MySQLdb转给pymysql处理
完工。
Logo

更多推荐