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

VizDoom加载basic.cfg遇FileDoesNotExistException错误求助

解决VizDoom FileDoesNotExistException 路径问题

作为Python和强化学习新手,遇到路径问题真的很常见,咱们一步步拆解问题、解决它:

核心误区:Jupyter的工作目录≠Notebook文件位置

你可能以为相对路径是基于Notebook所在的~/Documents/TestProject/,但Jupyter默认的**当前工作目录(CWD)**其实是你的用户主目录(~/)!这就是你用../../scenarios/basic.cfg找不到文件的原因——从~/往上跳两级就到了根目录/,根本不存在/scenarios文件夹。

先确认当前工作目录

在Notebook里运行这段代码,看看实际的工作路径:

import os
print("当前工作目录:", os.getcwd())

如果输出是/home/你的用户名/(也就是~/),那就能完全解释之前的路径失效问题了。

几种可靠的解决方案

方案1:验证并使用绝对路径

你之前尝试的绝对路径/usr/local/lib/python3.6/dist-packages/vizdoom/scenarios/basic.cfg理论上是可行的,先在终端里验证文件是否真的存在:

ls /usr/local/lib/python3.6/dist-packages/vizdoom/scenarios/basic.cfg

如果终端能显示文件信息,那回到Notebook里重新运行绝对路径的代码,注意不要有拼写错误(Linux路径区分大小写)。

方案2:利用Python包资源加载(最推荐,跨环境通用)

VizDoom作为Python包,它的scenarios文件是包的一部分,我们可以用Python的包资源工具自动找到文件路径,不用硬编码绝对路径:

方法A(兼容Python 3.6+):

from pkg_resources import resource_filename

# 自动获取vizdoom包下scenarios/basic.cfg的路径
cfg_path = resource_filename('vizdoom', 'scenarios/basic.cfg')
game.load_config(cfg_path)

方法B(Python 3.7+ 更规范):

import importlib.resources

# 安全获取包资源路径
with importlib.resources.path('vizdoom.scenarios', 'basic.cfg') as cfg_path:
    game.load_config(str(cfg_path))

这种方法不管VizDoom安装在哪个路径下,都能正确找到配置文件,适合不同环境。

方案3:复制配置文件到项目目录

如果你不想写复杂的代码,可以直接把VizDoom的scenarios文件夹复制到你的Notebook项目目录里:

cp -r /usr/local/lib/python3.6/dist-packages/vizdoom/scenarios ~/Documents/TestProject/

之后直接用相对路径加载:

game.load_config("scenarios/basic.cfg")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.07 08:18:14