Apache Airflow BigQuery Operator报错:setuptools版本依赖冲突求助
从你给出的错误信息来看,核心问题是环境依赖版本不匹配:Airflow运行时使用的Python环境里,setuptools版本是28.8.0,但google-api-core要求的版本是>=34.0.0。你自己查到的49.2.0版本,应该是在另一个Python环境(比如你当前激活的虚拟环境)里的,和Airflow实际运行的环境不是同一个。
下面是具体的排查和解决步骤:
第一步:确认Airflow实际使用的Python环境
先搞清楚Airflow到底在用哪个Python解释器。你可以在Airflow UI的「Admin」→「Variables」里查看相关路径,或者在终端执行命令:airflow info输出结果里会显示Python的安装路径,比如
Python Version: 3.5.2 (/home/vagrant/airflow_env/bin/python),这个路径就是Airflow实际依赖的Python环境。第二步:检查该环境下的setuptools版本
用刚才找到的Python路径执行命令,查看真实的setuptools版本:/home/vagrant/airflow_env/bin/python -m pip show setuptools这时候你应该会看到版本是28.8.0,和错误提示里的一致。
第三步:升级对应环境的setuptools
直接针对这个Python环境升级setuptools到符合要求的版本:/home/vagrant/airflow_env/bin/python -m pip install --upgrade setuptools>=34.0.0升级完成后,重启Airflow的webserver和scheduler服务,再刷新UI看看DAG是否恢复正常。
额外建议
你目前使用的airflow.contrib.operators.bigquery_operator已经被官方弃用了,推荐改用airflow.providers.google.cloud.operators.bigquery——这是Google Cloud Provider维护的最新版本,依赖更稳定,后续也会持续更新支持。
内容的提问来源于stack exchange,提问作者S.Nori

