Selenium(Python)运行报GPU进程启动失败error_code=2问题求助
Selenium跨设备运行报错修复方案
报错根因
- 代码存在基础缩进错误:原代码将
install("selenium")、install("chromedriver_autoinstaller")两行依赖安装调用错误写在install()函数体内部,运行时会触发无限递归,栈溢出后代码直接中断,根本执行不到后续navegador = webdriver.Chrome()的变量定义逻辑,直接触发NameError: name 'navegador' is not defined报错,和Chrome是否提前启动没有直接关系。 - GPU进程启动失败、Chrome崩溃报错属于目标设备环境兼容问题,通常由显卡驱动版本不匹配、系统UAC权限限制、Chrome硬件加速冲突导致,是Selenium驱动Chrome时的常见跨设备适配问题。
修复方案
- 修正代码缩进错误,将依赖安装调用移到
install()函数外部,避免递归死循环。 - 给Chrome实例添加通用兼容启动参数,覆盖绝大多数个人设备的运行环境,解决GPU、沙箱相关的启动崩溃问题。
- 若需要复用已经打开的Chrome窗口,额外添加远程调试配置即可,无需关闭现有Chrome进程。
修复后可直接运行的完整代码
import subprocess, sys def install(package): subprocess.check_call([sys.executable, "-m", "pip", "install", package]) # 修复缩进:将依赖安装调用移到函数外部 install("selenium") install("chromedriver_autoinstaller") from selenium.webdriver.chrome.options import Options from selenium import webdriver from selenium.webdriver.common.by import By import chromedriver_autoinstaller chromedriver_autoinstaller.install() chrome_options = Options() # 修复GPU进程启动失败问题 chrome_options.add_argument("--disable-gpu") chrome_options.add_argument("--disable-software-rasterizer") # 修复沙箱权限不足导致的崩溃问题 chrome_options.add_argument("--no-sandbox") chrome_options.add_argument("--disable-dev-shm-usage") # 可选:需要复用已打开的Chrome时,取消下一行注释,同时提前给Chrome快捷方式添加启动参数 --remote-debugging-port=9222 # chrome_options.add_experimental_option("debuggerAddress", "127.0.0.1:9222") navegador = webdriver.Chrome(options=chrome_options) navegador.get("https://www.google.com")
补充说明
- 如果添加参数后仍报GPU相关错误,直接将目标设备的Chrome浏览器升级到最新正式版,同时更新对应显卡的公版驱动即可解决。
- 复用已打开Chrome的配置方法:右键Chrome桌面快捷方式,选择「属性」,在「目标」栏原有路径末尾添加空格和
--remote-debugging-port=9222,保存后关闭所有Chrome后台进程,用修改后的快捷方式启动Chrome,再运行代码就会直接操作现有窗口,不会启动新的Chrome实例。
内容的提问来源于stack exchange,提问作者Sávio Carvalho
相关产品推荐
相关产品推荐

