最近在使用flask_sqlalchemy连接mysql,但是遇到一个很奇葩的问题,代码如下:
#-*-coding:utf-8 -*-
from flask_sqlalchemy import SQLAlchemy
db = SQLAlchemy()
db.create_engine("mysql+://root:root@xxx.xxx.xxx.5:3306/auto_test", encoding='utf-8', echo=True)
相关的依赖库版本如下:
运行一直报错:TypeError: create_engine() got an unexpected keyword argument 'encoding'。
网上查了很多资料,试了很多办法:
1.将Windows x86-64 MSI installer替换为Windows x86 MSI installer
2.卸载系统上的python3版本
3.更改mysql的连接驱动,如下:
db.create_engine("mysql://root:root@xxx.xxx.xxx.xxx:3306/auto_test", encoding='utf-8', echo=True)
db.create_engine("mysql+mysqlconnector://root:root@xxx.xxx.xxx.xxx:3306/auto_test", encoding='utf-8', echo=True)
db.create_engine("mysql+pymysql://root:root@xxx.xxx.xxx.xxx:3306/auto_test", encoding='utf-8', echo=True)
以上办法试了都没有解决问题,后来让同事帮忙看看,在他机器上运行却没有报错,后来分析是相关依赖库版本不匹配,
最终,按照他下载的版本安装后解决了问题。
最后的依赖库安装版本如下: