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

导入cv2导致Selenium启动Chrome浏览器失败问题求助

解决先导入cv2导致Selenium无法启动Chrome的问题

可行解决方案

方案1:延迟导入cv2

先启动Chrome浏览器实例,再导入cv2,这是最直接的临时解决办法:

from selenium import webdriver

# 优先启动Chrome
browser = webdriver.Chrome()
# 再导入cv2
import cv2

browser.get('https://example.com')
input()

方案2:重置sys.path后启动Chrome

如果业务逻辑要求必须先导入cv2,可以通过临时恢复原始sys.path来规避路径干扰:

import sys
# 提前保存未被cv2修改的原始sys.path
original_sys_path = sys.path.copy()

import cv2
# 临时恢复原始路径以启动Chrome
sys.path = original_sys_path
browser = webdriver.Chrome()
# 恢复包含cv2依赖路径的sys.path,确保后续cv2功能正常
sys.path.extend([p for p in sys.path if p not in original_sys_path])

browser.get('https://snake.io')
input()

问题根源分析

opencv-python的bootstrap函数会修改sys.path,将其内部扩展路径插入到sys.path的靠前位置(根据applySysPathWorkaround参数决定插入到索引0或1)。这种修改会干扰Selenium启动Chrome时的路径查找逻辑,导致ChromeDriver无法正常与Chrome实例建立DevTools连接,最终抛出SessionNotCreatedException并提示DevToolsActivePort file doesn't exist。

将cv2导入放在Chrome启动之后时,Selenium已经完成了浏览器启动的路径校验,不会受到后续sys.path修改的影响,因此可以正常运行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 00:57:17