在Airflow DAG中初始化Apify Client时遇TypeError错误求助
解决Airflow中Apify Client初始化时的httpx参数错误
这个报错的核心原因很明确:Airflow运行环境里的httpx版本太低,follow_redirects是httpx 0.23.0及以上版本才新增的参数,而你的Airflow环境里的httpx版本低于这个要求,导致Apify Client调用httpx.Client时传了不被支持的参数。
手动执行正常是因为你本地脚本用的Python环境里,httpx版本符合Apify Client的要求(>=0.23.0),但Airflow的worker/scheduler用的是另一个环境,依赖版本没跟上。
直接按下面的步骤解决:
先确认Airflow运行环境的httpx版本
登录到Airflow worker或scheduler所在的服务器,激活对应的虚拟环境后执行:pip show httpx看输出的
Version字段,肯定低于0.23.0。升级Airflow环境的httpx到0.23.x稳定版
因为Apify Client不支持0.24+,所以直接指定0.23系列的最新版本安装:pip install httpx==0.23.3安装完再用
pip show httpx确认版本。验证环境一致性(可选)
怕以后再踩环境不一致的坑,可以在DAG里加个小任务打印依赖版本:from airflow.decorators import task import pkg_resources @task def check_deps(): target_pkgs = ['httpx', 'apify-client'] installed = sorted([f"{pkg.key}=={pkg.version}" for pkg in pkg_resources.working_set if pkg.key in target_pkgs]) print("当前环境依赖:", installed)运行这个任务,对比你手动执行脚本时的
pip list输出,确保两个环境的这两个包版本一致。
内容的提问来源于stack exchange,提问作者tripod
相关产品推荐
相关产品推荐

