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

Ubuntu16下sudo/Celery任务运行Selenium时Chromium驱动报错

解决Ubuntu16下sudo/Celery环境中Selenium Chrome驱动执行失败的问题

我之前在Ubuntu16上踩过一模一样的坑!手动跑Python脚本时Selenium Chrome驱动完全正常,但一用sudo执行或者丢给Celery任务跑就直接报错,核心原因其实是无图形界面权限和用户环境差异在搞鬼,给你整理几个亲测有效的解决办法:

1. 强制启用Headless无头模式+必要参数

sudo或者Celery运行环境通常没有桌面会话,Chrome默认需要图形界面才能启动,必须开启无头模式,还要加上几个针对root/无权限环境的参数:

from selenium import webdriver
from selenium.webdriver.chrome.options import Options

# 配置Chrome选项
chrome_options = Options()
chrome_options.add_argument('--headless')  # 无头模式,无需显示界面
chrome_options.add_argument('--no-sandbox')  # 关键!root用户运行必须关闭沙箱,否则直接报错
chrome_options.add_argument('--disable-dev-shm-usage')  # 解决Ubuntu默认/dev/shm空间不足导致的崩溃
chrome_options.add_argument('--disable-gpu')  # 禁用GPU加速,无头模式下不需要

# 初始化驱动
driver = webdriver.Chrome(
    executable_path='/usr/lib/chromium-browser/chromedriver',
    options=chrome_options
)

这几个参数是刚需,尤其是--no-sandbox,root用户运行Chrome时默认会强制启用沙箱,但root本身不能用沙箱,所以必须手动关闭。

2. 统一环境变量与用户权限

手动运行是当前普通用户,sudo是root,Celery可能用的是www-data或其他系统用户,不同用户的环境变量、Chrome路径甚至依赖库权限都不一样:

  • 指定Chrome二进制文件路径:有时候root用户的PATH里找不到Chrome,直接指定完整路径更稳妥:
    chrome_options.binary_location = '/usr/bin/chromium-browser'  # 根据你的实际路径调整
    
  • 让Celery以普通用户身份运行:如果Celery默认用root或www-data执行,改成你手动跑脚本的用户,环境就完全一致了。比如启动Celery时加参数:
    celery -A your_project worker --user=your_username --loglevel=info
    
  • 检查权限:确保chromedriver文件有可执行权限,并且所有运行用户都能访问:
    sudo chmod +x /usr/lib/chromium-browser/chromedriver
    sudo chmod 755 /usr/lib/chromium-browser/chromedriver  # 给所有用户加读写执行权限
    

3. 验证Chrome与Chromedriver版本匹配

虽然手动运行正常,但不同用户下的Chrome版本可能有差异(比如普通用户装了新版Chrome,root用的是系统默认旧版)。分别在普通用户和sudo下执行以下命令,确保版本大号一致:

# 普通用户下
chromium-browser --version
chromedriver --version

# sudo下
sudo chromium-browser --version
sudo chromedriver --version

如果版本不匹配,去下载对应版本的chromedriver替换即可。

额外排查技巧

如果还是报错,可以在sudo环境下直接运行chromedriver命令,看有没有具体的错误提示;或者在Celery任务里加日志,打印当前用户、环境变量、Chrome路径等信息,方便定位到底是哪一步出了问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 06:42:03