使用browser-use库执行任务时遭遇OSError: cannot open resource错误求助
使用browser-use库执行任务时遭遇OSError: cannot open resource错误求助
嘿,看起来你遇到的问题是browser-use库在生成任务历史GIF时找不到字体资源导致的——从报错日志里能看到,任务其实已经成功完成了(那句✅ Task completed successfully就是证明),只是后续生成GIF动图的步骤里,PIL库的ImageFont.truetype()找不到可用的字体文件,才抛出了这个错误。我给你几个实用的解决办法,按从简单到复杂的顺序来:
办法一:直接禁用GIF生成(最省心)
如果不需要任务过程的GIF记录,你可以在初始化Agent的时候直接关闭这个功能,这样就完全不会触发字体加载的逻辑了。修改你的代码如下:
agent = Agent( task="Find non-profit organisations in drc and return the names, location and what they do.", llm=ChatOpenAI(model="gpt-4o"), create_history_gif=False # 新增这一行,关闭GIF生成 )
这个办法不需要折腾字体,直接绕开了报错的环节,适合只需要任务结果的场景。
办法二:指定系统中存在的字体路径
如果你还是想要生成GIF,那可以让PIL找到正确的字体文件。以你用的Windows系统为例,系统自带的Arial字体路径一般是C:/Windows/Fonts/arial.ttf,你可以修改browser-use库的源代码来指定这个路径:
- 打开报错里提到的文件:
D:\llms\browser_use\venv\Lib\site-packages\browser_use\agent\service.py - 找到
_create_task_frame方法里调用ImageFont.truetype的行(大概是第709行) - 把原来的字体参数替换成Arial的绝对路径,比如:
larger_font = ImageFont.truetype("C:/Windows/Fonts/arial.ttf", 24)
保存修改后再运行代码,应该就能正常生成GIF了。
办法三:提前给PIL设置默认字体
你也可以在自己的代码开头,预先让PIL加载系统字体,这样后续browser-use调用的时候就不会找不到资源了。在导入库的部分添加以下代码:
from PIL import ImageFont # 加载Windows系统的Arial字体作为默认 ImageFont.truetype("C:/Windows/Fonts/arial.ttf")
或者更通用一点,让PIL加载它的默认字体:
from PIL import ImageFont ImageFont.load_default()
这个办法不需要修改第三方库的代码,也能解决字体找不到的问题。
备注:内容来源于stack exchange,提问作者paul mwaura
相关产品推荐
相关产品推荐

