使用ale-import-roms导入atari的rom时RuntimeError问题解决办法

问题描述

安装ale-py以后,发现还需要导入ROM,参考了
ModuleNotFoundError: No module named ‘ale_python_interface‘ 解决方案
的方法折腾了一通以后,在ale-import-roms这个命令翻车了,报错RuntimeError:

(hunter) PS E:\Download\Roms> ale-import-roms .\ROMS\
Traceback (most recent call last):
  File "D:\ProgramData\Miniconda3\envs\hunter\lib\runpy.py", line 193, in _run_module_as_main
    "__main__", mod_spec)
  File "D:\ProgramData\Miniconda3\envs\hunter\lib\runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "D:\ProgramData\Miniconda3\envs\hunter\Scripts\ale-import-roms.exe\__main__.py", line 7, in <module>
  File "D:\ProgramData\Miniconda3\envs\hunter\lib\site-packages\ale_py\scripts\import_roms.py", line 93, in main
    import_roms(romdir, datadir, pkg=args.import_from_pkg, dry_run=args.dry_run)
  File "D:\ProgramData\Miniconda3\envs\hunter\lib\site-packages\ale_py\scripts\import_roms.py", line 25, in import_roms
    rom = ale_py.ALEInterface.isSupportedROM(path)
RuntimeError

解决方法

这个错误貌似在linux上不会出现,定位到出错位置,import_roms.py的第25行:

    for path in romdir.glob("**/*.bin"):
        rom = ale_py.ALEInterface.isSupportedROM(path)
        if rom is not None:
            supported[rom] = path
        else:
            unsupported.append(path)

改为:

    for path in romdir.glob("**/*.bin"):
    	try:
        	rom = ale_py.ALEInterface.isSupportedROM(path)
        	if rom is not None:
            	supported[rom] = path
        	else:
            	unsupported.append(path)
        except:
        	pass

保存以后重新执行ale-import-roms .\ROMS\

在这里插入图片描述

导入了100多个

原因分析

如果在

rom = ale_py.ALEInterface.isSupportedROM(path)

的上一行增加一个临时输出

print(path)
rom = ale_py.ALEInterface.isSupportedROM(path)

保存以后执行ale-import-rom会有这样的结果:

在这里插入图片描述

说明有的ROM包名字出现了法文字符,windows环境下貌似读取会出错,所以索性跳过这些文件。

  • 8
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值