在EC2实例上用Python脚本启动Chrome报错127如何解决?
解决EC2实例上Selenium启动Chrome时的WebDriverException(Status code 127)
这个错误码127其实很典型——要么是Chrome浏览器没安装,要么是ChromeDriver找不到依赖/和Chrome版本不匹配,再或者是你没考虑到EC2是**无头环境(无图形界面)**导致Chrome启动失败。我给你一步步拆解解决方案:
1. 先安装Chrome浏览器
你只提到安装了Selenium,但EC2默认不带Chrome。以Ubuntu/Debian系的EC2实例为例,执行以下命令安装轻量版Chrome(Chromium):
sudo apt update sudo apt install -y chromium-browser
2. 确保ChromeDriver与Chrome版本严格匹配
ChromeDriver的主版本必须和你安装的Chrome完全一致(比如Chrome是114.x,ChromeDriver也要用114.x版本)。不想手动管理版本的话,可以直接安装系统适配的驱动:
sudo apt install -y chromium-chromedriver
安装后可以用which chromedriver验证驱动路径,确保脚本能找到它。
3. 修改脚本适配EC2无头环境
EC2没有图形界面,必须用无头模式启动Chrome,还要加几个参数避免沙箱和内存问题。修改后的脚本如下:
from selenium import webdriver from selenium.webdriver.chrome.options import Options url = 'http://www.srcmake.com/' # 配置Chrome无头模式及必要参数 chrome_options = Options() chrome_options.add_argument('--headless') # 核心:无需图形界面的无头模式 chrome_options.add_argument('--no-sandbox') # EC2环境下必须禁用沙箱 chrome_options.add_argument('--disable-dev-shm-usage') # 避免/dev/shm空间不足导致崩溃 chrome_options.add_argument('--disable-gpu') # 无头环境无需GPU加速 # 初始化Driver,若chromedriver在系统PATH中可省略executable_path driver = webdriver.Chrome(options=chrome_options, executable_path='/usr/bin/chromedriver') driver.get(url) # 打印页面标题验证是否成功加载 print("页面标题:", driver.title) # 用完记得关闭Driver,避免资源泄漏 driver.quit()
4. 补全Chrome运行所需系统依赖
即使装了Chrome,也可能因为缺少系统库导致启动失败,执行以下命令安装依赖:
sudo apt install -y libnss3 libgconf-2-4 libxss1 libappindicator1 libindicator7
5. 检查ChromeDriver的执行权限
如果以上步骤都完成仍报错,可能是ChromeDriver没有执行权限,给它添加权限:
chmod +x /usr/bin/chromedriver
按这个流程操作后,应该就能解决Status code 127的问题——本质就是ChromeDriver无法正常启动Chrome,要么缺软件,要么缺适配配置。
内容的提问来源于stack exchange,提问作者Anshul Walia
相关产品推荐
相关产品推荐

