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

Win11 WSL2环境Chromedriver已加PATH仍报错需在PATH的问题

问题根因

所有报错本质是WSL2环境和Windows宿主环境的运行边界没有理清:

  • 你下载的chromedriver_win32压缩包内的chromedriver.exe是Windows专属可执行文件,WSL2是Linux运行环境,无法直接原生识别运行该格式文件,即便开启WSL的Windows程序互操作功能,跨环境路径解析、权限逻辑也很容易出异常
  • 你添加的\\wsl.localhost\Ubuntu\home\my_username\chromedriver_win32\是Windows系统下的UNC网络路径,如果你是在WSL终端内执行Python命令,WSL维护独立的PATH环境变量,不会读取Windows侧手动添加的该路径配置
  • 之前尝试调用google-chrome触发KeyError,是因为WSL环境默认没有安装Linux版本的Chrome/Chromium浏览器,程序找不到对应程序入口。
解决方案(二选一即可)

方案一:全栈使用WSL2 Linux环境运行(稳定性最高)

  • 第一步,在WSL2终端直接执行命令安装软件源内自带的Chromium和版本匹配的对应驱动:
sudo apt update && sudo apt install -y chromium-browser chromium-chromedriver
  • 第二步,安装完成后执行验证命令,确认驱动正常被系统识别:
chromedriver --version

命令正常返回版本号即代表驱动路径已经自动加入WSL的PATH,无需手动配置。

  • 第三步,直接运行原有脚本即可。如果WSL2没有配置图形界面转发,需要给Chrome加无头启动参数,修改测试代码为:
from selenium import webdriver
from selenium.webdriver.chrome.options import Options

opts = Options()
opts.add_argument("--headless=new")
opts.add_argument("--no-sandbox")
opts.add_argument("--disable-dev-shm-usage")
driver = webdriver.Chrome(options=opts)

website = "https://www.adamchoi.co.uk/overs/detailed"
driver.get(website)

即可正常无界面完成爬取操作。

方案二:全栈使用Windows环境运行(可直接唤起桌面Chrome看到操作过程)

  • 第一步,退出WSL终端,打开Windows自带的PowerShell或命令提示符
  • 第二步,将之前下载的chromedriver.exe移动到纯Windows本地路径下,例如C:\webdrivers\,不要存放在WSL的网络映射目录中
  • 第三步,将C:\webdrivers\添加到Windows系统的PATH环境变量中,添加完成后重启所有终端窗口让配置生效
  • 第四步,在PowerShell中执行chromedriver.exe --version,能正常返回版本号即配置成功,切到脚本所在目录执行python scraper.py即可正常运行。
额外避坑提示
  • 不要跨环境混用程序和路径:不要在WSL里调用存放在WSL文件系统内的exe程序,也不要把Windows的UNC路径加入WSL的PATH变量,跨文件系统的权限、路径转义问题会触发很多无意义的报错
  • 4.6及以上版本的Selenium自带驱动自动管理功能,只要本地安装了对应版本的Chrome浏览器,不需要手动下载chromedriver,执行pip install --upgrade selenium升级到最新版即可省掉手动匹配驱动版本、配置路径的步骤。

内容的提问来源于stack exchange,提问作者p.habermanm

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 17:01:18