我对OpenAi gym完全陌生,我刚刚安装了gym,然后尝试为env = gym.make('MsPacman-v0')创建环境,所以我得到了以下错误:
---------------------------------------------------------------------------
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>,在运行此命令后,我也收到以下错误
(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我不知道我做错了什么。提前感谢。
发布于 2021-06-26 22:55:19
这个脚本应该可以解决这个问题
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发布于 2021-05-24 15:53:07
下载ROMs后,它将作为Roms.rar在Downloads文件夹中可用,它包含HC ROMS.zip和ROMS.zip中的2个压缩文件,我不得不解压Roms.rar,再次解压ROMS.zip。然后运行该命令。
python -m atari_py.import_roms python
发布于 2021-10-17 05:38:14
这可能是由于Python3.7.0:Python issue #34035中ZipFile.seek()中的一个错误。
您需要升级到最新的Python 3.7.x版本。
还要注意的是,从GYM0.21开始,您可以通过运行以下命令来安装gym并自动获取所有ROM:
pip install "gym[atari,accept-rom-license]"详情:
accept-rom-license选项将安装AutoROM包,该包提供AutoROM命令。它还将使用--accept-license选项自动运行它。或者,您可以手动pip install autorom并运行AutoROM命令。如果你不给它任何选项,这就是它的输出,所以要注意。我的感觉是,将它们用于研究和教育目的是可以的,但我不是律师:
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获取更多选项。
https://stackoverflow.com/questions/67656740
复制相似问题