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

Docker部署Airflow运行DAG时遇Selenium模块找不到错误求助

Docker中Airflow DAG无法找到Selenium模块的解决办法

问题根源

出现ModuleNotFoundError: No module named 'selenium'是因为你手动在容器内用pip安装的包,没在Airflow运行的Python环境里。Airflow的worker/scheduler进程使用的Python环境,和你进入容器后操作的环境可能并非同一个,导致模块无法被识别。

解决方法

1. 自定义Airflow镜像(推荐)

基于官方镜像构建专属镜像,把依赖打包进去,避免容器重启后依赖丢失:

# 替换成你正在使用的Airflow版本,比如2.6.3-python3.7
FROM apache/airflow:2.6.3-python3.7

# 安装Chrome浏览器及驱动(若使用Chrome作为浏览器)
USER root
RUN apt-get update && apt-get install -y chromium chromium-driver

# 切换回airflow用户,安装Python依赖包
USER airflow
RUN pip install selenium webdriver-manager

构建镜像并重启容器:

docker build -t my-airflow .
docker-compose up -d --force-recreate

2. 修改docker-compose.yml自动安装依赖

若不想重新构建镜像,可在docker-compose.yml中为worker和scheduler添加启动命令,容器启动时自动安装依赖:

services:
  airflow-worker:
    command: bash -c "pip install selenium webdriver-manager && airflow celery worker"
  airflow-scheduler:
    command: bash -c "pip install selenium webdriver-manager && airflow scheduler"

重启容器使配置生效:

docker-compose restart airflow-worker airflow-scheduler

3. 匹配Airflow的Python环境安装依赖

先确认Airflow使用的Python路径:

# 进入airflow-worker容器
docker exec -it <你的worker容器名称> bash

# 查看Airflow关联的Python版本及路径
airflow info | grep "Python Version"
# 或者直接查看Airflow进程的Python路径
ps aux | grep airflow | grep python

找到对应路径后,使用该路径下的pip安装依赖:

# 示例路径,请替换为你实际查到的路径
/usr/local/bin/pip install selenium webdriver-manager

注意事项

  • 不要直接在运行中的容器内手动安装包,容器重启后所有修改会丢失,必须通过镜像构建或docker-compose配置实现依赖持久化。
  • 若使用WebDriver,需保证浏览器与驱动版本完全匹配,否则会出现新的运行错误。

内容的提问来源于stack exchange,提问作者V-Ghost

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 02:40:08