You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在Airflow DAG中使用rapidjson报错:No module named 'rapidjson'求助

问题分析与解决步骤

一、模块安装不生效的核心原因

你手动在EC2实例上执行pip install python-rapidjson验证成功,但Airflow UI仍报错找不到模块,核心原因是Airflow运行使用的Python环境,和你执行pip命令的环境不一致。Airflow通常会绑定特定的Python解释器(比如虚拟环境、独立的系统Python路径),直接用全局pip安装的库不会被Airflow进程识别。

二、解决模块找不到的问题

1. 定位Airflow绑定的Python解释器

在每个Airflow实例(scheduler、webserver、workers)上,执行以下命令找到Airflow对应的Python路径:

# 查看Airflow关联的Python版本及路径
airflow info | grep "Python Version"
# 或者直接查找airflow命令的路径,推导Python位置
which airflow

假设输出的airflow路径为/usr/local/bin/airflow,对应的Python解释器通常是同目录下的python3(即/usr/local/bin/python3)。

2. 在Airflow的Python环境中安装依赖

用查到的Python路径执行安装命令,确保三个实例都执行:

/usr/local/bin/python3 -m pip install python-rapidjson==1.5.5

3. 验证环境匹配性

安装完成后,用Airflow的Python解释器测试导入:

/usr/local/bin/python3 -c "import rapidjson; print(rapidjson.__version__)"

如果能正常输出版本号,说明依赖已安装到Airflow能识别的环境中。

三、requirements.txt的正确使用方式

你在Git仓库添加了requirements.txt,但需要先将文件同步到EC2实例的正确目录,再执行安装:

1. 找到Airflow的DAG根目录

执行命令获取Airflow配置的DAG文件夹路径:

airflow config get-value core dags_folder

2. 进入DAG目录并安装依赖

因为你的Git代码合并后会自动同步到Airflow UI,说明仓库内容已同步到该DAG目录。进入目录后执行安装:

cd $(airflow config get-value core dags_folder)
/usr/local/bin/python3 -m pip install -r requirements.txt

如果自动同步未包含requirements.txt,需检查你的CI/CD同步机制,确保整个仓库内容(包括该文件)被同步到EC2实例的DAG目录。

四、长期固化依赖的方案

为避免每次手动操作,建议将依赖安装集成到部署流程中:

  • 如果用AWS部署工具(CloudFormation/Terraform),在实例启动脚本中加入Airflow环境的pip安装命令。
  • 调整CI/CD流程,在同步代码到EC2后,自动执行python -m pip install -r requirements.txt(使用Airflow绑定的Python解释器)。

五、必要的收尾操作

安装依赖后,必须重启所有Airflow服务,确保进程加载新安装的模块:

# 重启scheduler
sudo systemctl restart airflow-scheduler
# 重启webserver
sudo systemctl restart airflow-webserver
# 重启Celery worker(如果使用CeleryExecutor)
sudo systemctl restart airflow-worker

内容的提问来源于stack exchange,提问作者x89

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.20 06:13:11