airflow作为一个大型的运用程序,同时也作为一个包存在。作为一个运行程序,是需要考虑兼容各类不同的python包;作为一个包,需要明确依赖。由于python的包统一管理,因此经常存在包冲突问题。
以mysql的驱动 pymysql / mysql-connector-python/mysqlclient 为例,airflow仅仅只支持 mysql-connector-python/mysqlclient,同时官网在requierements中建议使用
mysql-connector-python==8.0.18
mysqlclient==1.3.14
如果使用别的版本,否则容易出现很多莫名其妙的bug。
/questions/60849189/apche-airflow-with-mysql-backend-unicodedecodeerror-utf-8-codec-cant-decod
社区注意到了这个问题,所以才建议安装包时限定版本
例如,在安装时,添加限制:
同时,由于社区不在支持python2,建议使用airflow时使用python3;同时当使用mysql作为后端时,推荐版本为5.7