Python(VSCode)环境下Playwright Chromium可执行文件缺失或版本不匹配问题求助
兄弟,你这个问题我之前做网页数据抓取时也碰到过,确实和Playwright的Chromium版本不匹配+安装不完整脱不了干系,下面给你一步步排查和解决的方案:
你的问题详情:
我在Python(VSCode)中尝试用Ollama结合Playwright做网页数据抓取,但运行代码时一直报错,提示找不到指定路径的Chromium可执行文件:
ERROR [browser] Failed to initialize Playwright browser: BrowserType.launch: Executable doesn't exist at C:\Users\yourUser\AppData\Local\ms-playwright\chromium-1155\chrome-win\chrome.exe我本地的目录里是chromium-1161版本,而且这个目录里也找不到chrome.exe,已经重装过Playwright了还是没用。
你的代码:
from langchain_community.chat_models import ChatOllama from browser_use import Agent, Browser, BrowserConfig from pydantic import SecretStr import os import asyncio import getpass from dotenv import load_dotenv load_dotenv() api_key = os.getenv("GEMINI_API_KEY") task = f""" # Instructions... """ # Initialize the model llm = ChatOllama(model="mistral", api_key=SecretStr(os.getenv('GEMINI_API_KEY'))) browser = Browser() async def main(): agent = Agent( task=task, llm=llm, ) await agent.run() input("Press Enter to continue...") await browser.close() asyncio.run(main())
完整错误信息:
INFO [agent] Step 1 ERROR [browser] Failed to initialize Playwright browser: BrowserType.launch: Executable doesn't exist at C:\Users\yourUser\AppData\Local\ms-playwright\chromium-1155\chrome-win\chrome.exe
解决方案步骤:
1. 彻底修复Chromium的安装(优先执行)
你说重装Playwright后还是没有chrome.exe,大概率是安装过程权限不足或缓存干扰,按这个流程来:- 关闭VSCode,右键以管理员身份重新打开
- 打开终端,删除旧的Playwright浏览器缓存:
rmdir /s /q C:\Users\yourUser\AppData\Local\ms-playwright - 强制重新安装Playwright和对应版本的Chromium:
pip install --force-reinstall playwright playwright install chromium
安装完成后去
ms-playwright目录检查,应该能找到对应版本的Chromium目录,里面也会有chrome.exe了。2. 解决版本不匹配问题
代码里的browser_use库可能依赖旧版本Playwright,导致它去寻找1155版本的Chromium。你可以先更新所有相关依赖到最新版:pip install --upgrade browser_use langchain_community python-dotenv如果还是不行,就手动指定浏览器可执行路径,修改初始化Browser的代码:
# 替换原有的browser = Browser() browser = Browser( config=BrowserConfig( executable_path="C:\\Users\\yourUser\\AppData\\Local\\ms-playwright\\chromium-1161\\chrome-win\\chrome.exe" ) )3. 修正代码里的冗余配置
注意到你给ChatOllama传了Gemini的API密钥,Ollama本身不需要这个密钥,属于冗余配置,可能会造成不必要的干扰,建议修改为:llm = ChatOllama(model="mistral")
备注:内容来源于stack exchange,提问作者Mohammad Abdullah

