首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >异常: ms_pacman缺少ROM,有关说明,请参阅ROM

异常: ms_pacman缺少ROM,有关说明,请参阅ROM
EN

Stack Overflow用户
提问于 2021-05-23 14:16:15
回答 5查看 5.8K关注 0票数 1

我对OpenAi gym完全陌生,我刚刚安装了gym,然后尝试为env = gym.make('MsPacman-v0')创建环境,所以我得到了以下错误:

代码语言:javascript
复制
---------------------------------------------------------------------------
Exception                                 Traceback (most recent call last)
<ipython-input-21-e04adf623175> in <module>
----> 1 env = gym.make('MsPacman-v0')

~\Anaconda3\envs\env_project\lib\site-packages\gym\envs\registration.py in make(id, **kwargs)

~\Anaconda3\envs\env_project\lib\site-packages\gym\envs\registration.py in make(self, path, **kwargs)

~\Anaconda3\envs\env_project\lib\site-packages\gym\envs\registration.py in make(self, **kwargs)

~\Anaconda3\envs\env_project\lib\site-packages\gym\envs\atari\atari_env.py in __init__(self, game, 
mode, difficulty, obs_type, frameskip, repeat_action_probability, full_action_space)

~\Anaconda3\envs\env_project\lib\site-packages\atari_py\games.py in get_game_path(game_name)
 18     path = os.path.join(_games_dir, game_name) + ".bin"
 19     if not os.path.exists(path):
---> 20         raise Exception('ROM is missing for %s, see https://github.com/openai/atari-py#roms 
for instructions' % (game_name,))
 21     return path
 22 

Exception: ROM is missing for ms_pacman, see https://github.com/openai/atari-py#roms for instructions

在此之后,我还尝试在web上找到解决方案并下载ROMs,然后点击命令python -m atari_py.import_roms <path where ROMs downloaded>,在运行此命令后,我也收到以下错误

代码语言:javascript
复制
(env_project) C:\Users\ME>python -m atari_py.import_roms C:\Users\ME\Downloads\roms_folder\

copying adventure.bin from HC ROMS/BY ALPHABET (PAL)/A-G/Adventure (PAL).bin to 
C:\Users\ME\Anaconda3\envs\env_project\lib\site-packages\atari_py\atari_roms\adventure.bin
Traceback (most recent call last):
File "C:\Users\ME\Anaconda3\envs\env_project\lib\runpy.py", line 193, in _run_module_as_main
"__main__", mod_spec)
File "C:\Users\ME\Anaconda3\envs\env_project\lib\runpy.py", line 85, in _run_code
exec(code, run_globals)
File "C:\Users\ME\Anaconda3\envs\env_project\lib\site-packages\atari_py\import_roms.py", line 93, 
in <module>
main()
File "C:\Users\ME\Anaconda3\envs\env_project\lib\site-packages\atari_py\import_roms.py", line 89, 
in main
import_roms(args.dirpath)
File "C:\Users\ME\Anaconda3\envs\env_project\lib\site-packages\atari_py\import_roms.py", line 78, 
in import_roms
_check_zipfile(f, save_if_matches)
File "C:\Users\ME\Anaconda3\envs\env_project\lib\site-packages\atari_py\import_roms.py", line 23, 
in _check_zipfile
process_f(innerf)
File "C:\Users\ME\Anaconda3\envs\env_project\lib\site-packages\atari_py\import_roms.py", line 67, 
in save_if_matches
f.seek(0)
io.UnsupportedOperation: seek

我不知道我做错了什么。提前感谢。

EN

回答 5

Stack Overflow用户

发布于 2021-06-26 22:55:19

这个脚本应该可以解决这个问题

代码语言:javascript
复制
import urllib.request
urllib.request.urlretrieve('http://www.atarimania.com/roms/Roms.rar','Roms.rar')
!pip install unrar
!unrar x Roms.rar
!mkdir rars
!mv HC\ ROMS.zip   rars
!mv ROMS.zip  rars
!python -m atari_py.import_roms rars
票数 5
EN

Stack Overflow用户

发布于 2021-05-24 15:53:07

下载ROMs后,它将作为Roms.rar在Downloads文件夹中可用,它包含HC ROMS.zipROMS.zip中的2个压缩文件,我不得不解压Roms.rar,再次解压ROMS.zip。然后运行该命令。

python -m atari_py.import_roms python

票数 3
EN

Stack Overflow用户

发布于 2021-10-17 05:38:14

这可能是由于Python3.7.0:Python issue #34035ZipFile.seek()中的一个错误。

您需要升级到最新的Python 3.7.x版本。

还要注意的是,从GYM0.21开始,您可以通过运行以下命令来安装gym并自动获取所有ROM:

代码语言:javascript
复制
pip install "gym[atari,accept-rom-license]"

详情:

accept-rom-license选项将安装AutoROM包,该包提供AutoROM命令。它还将使用--accept-license选项自动运行它。或者,您可以手动pip install autorom并运行AutoROM命令。如果你不给它任何选项,这就是它的输出,所以要注意。我的感觉是,将它们用于研究和教育目的是可以的,但我不是律师:

代码语言:javascript
复制
AutoROM will download the Atari 2600 ROMs.
They will be installed to:
    [...]/site-packages/AutoROM/roms

Existing ROMs will be overwritten.

I own a license to these Atari 2600 ROMs.
I agree to not distribute these ROMs and wish to proceed: [Y/n]:

运行AutoROM --help获取更多选项。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67656740

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档