Docker部署Airflow无法导入已安装Python模块问题求助
问题诊断与解决办法
核心排查方向
你遇到的问题大概率是依赖包安装错误或Airflow Python环境与检查环境不一致导致的,以下是分步解决步骤:
1. 确认依赖包是否正确安装
- 首先检查你的
requirements.txt:polygon是一个同名无关包,真正提供RESTClient的包是polygon-api-client。如果你的requirements.txt里写的是polygon,立刻改成polygon-api-client>=2.0.0(或你需要的具体版本)。
2. 验证容器内Airflow使用的Python环境
- 进入Airflow worker或scheduler容器:
docker exec -it <你的airflow-worker容器名> bash - 用Airflow绑定的Python解释器直接测试导入(避免使用系统默认Python):
airflow python -c "from polygon import RESTClient; print('导入成功')" - 如果报错,执行以下命令确认包是否安装在Airflow的Python路径中:
airflow pip list | grep polygon-api-client
3. 修正Dockerfile的依赖安装逻辑
- 确保依赖安装是针对Airflow用户的(避免权限或路径匹配问题),示例Dockerfile片段:
FROM apache/airflow:2.7.1 USER airflow COPY requirements.txt /tmp/requirements.txt RUN pip install --user -r /tmp/requirements.txt - 若之前用root用户安装依赖,可能导致包不在Airflow的Python搜索路径内,改用上述方式安装即可。
4. 重建镜像并重启服务
- 重新构建自定义镜像:
docker-compose build - 重启所有Airflow服务:
docker-compose down && docker-compose up -d
5. 再次验证
- 等待scheduler加载新DAG后,查看Airflow UI的DAG状态,或再次在容器内用
airflow python测试导入语句。
内容的提问来源于stack exchange,提问作者user3510503
相关产品推荐
相关产品推荐

