如何解决开放式体育馆的环境错误?

时间:2019-06-23 21:23:48

标签: python openai-gym

代码:

import gym
env = gym.make('Breakout-v0')

我得到一个错误:

Traceback (most recent call last):
File "C:/Users/danie/Downloads/Programming/Python/Programming/Pycharm/app.py", line 40, in 
gym.make("Breakout-v0")
File "C:\Users\danie\AppData\Local\Programs\Python\Python37\lib\site-packages\gym\envs\registration.py", line 156, in make
return registry.make(id, **kwargs)
File "C:\Users\danie\AppData\Local\Programs\Python\Python37\lib\site-packages\gym\envs\registration.py", line 101, in make
env = spec.make(**kwargs)
File "C:\Users\danie\AppData\Local\Programs\Python\Python37\lib\site-packages\gym\envs\registration.py", line 72, in make
cls = load(self.entry_point)
File "C:\Users\danie\AppData\Local\Programs\Python\Python37\lib\site-packages\gym\envs\registration.py", line 17, in load
mod = importlib.import_module(mod_name)
File "C:\Users\danie\AppData\Local\Programs\Python\Python37\lib\importlib_init.py", line 127, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "", line 1006, in _gcd_import
File "", line 983, in _find_and_load
File "", line 967, in find_and_load_unlocked
File "", line 677, in load_unlocked
File "", line 728, in exec_module
File "", line 219, in call_with_frames_removed
File "C:\Users\danie\AppData\Local\Programs\Python\Python37\lib\site-packages\gym\envs\atari_init.py", line 1, in 
from gym.envs.atari.atari_env import AtariEnv
File "C:\Users\danie\AppData\Local\Programs\Python\Python37\lib\site-packages\gym\envs\atari\atari_env.py", line 9, in 
import atari_py
File "C:\Users\danie\AppData\Local\Programs\Python\Python37\lib\site-packages\atari_py_init.py", line 1, in 
from .ale_python_interface import *
File "C:\Users\danie\AppData\Local\Programs\Python\Python37\lib\site-packages\atari_py\ale_python_interface.py", line 18, in 
'ale_interface/build/ale_c.dll'))
File "C:\Users\danie\AppData\Local\Programs\Python\Python37\lib\ctypes_init.py", line 434, in LoadLibrary
return self.dlltype(name)
File "C:\Users\danie\AppData\Local\Programs\Python\Python37\lib\ctypes_init.py", line 356, in init
self._handle = _dlopen(self._name, mode)
OSError: [WinError 126] The specified module could not be found

4 个答案:

答案 0 :(得分:1)

在以下网站的帮助下,我终于能够解决此问题:https://towardsdatascience.com/how-to-install-openai-gym-in-a-windows-environment-338969e24d30

基本上我需要做3件事:1)安装Microsoft Visual C ++ Build Tools,2)安装Atari https://github.com/Kojoley/atari-py.git的特定版本,3)安装Xming。祝所有Windows用户好运:)这花了我大约3天的时间。

答案 1 :(得分:1)

我已尝试使其在 Windows 10 上与 python 3.8 和 3.9 一起使用。安装 Python 3.7 并将其用作 PyCharm 上的 Python 解释器解决了该问题。我在使用 3.8 + 版本的 Python 时搜索了丢失的文件,但它根本不存在。 Atari-py 仅支持 Python 3.7 (https://github.com/openai/atari-py),因此更高版本将不起作用。从未经许可的地方下载文件是个坏主意,因此我建议您安装受支持的 Python 版本(3.5、3.6 和 3.7)。尽管 Gym 可以在 3.9 上运行,但 atari 版本却不能。我不需要安装任何其他东西(虽然我可能有 Microsoft Visual C++ 构建工具,但我不需要 Xming),只需导入健身房 0.18.0、pyglet 1.5.0、atari -py 0.2.6

答案 2 :(得分:0)

欢迎来到SO。如果跟踪异常跟踪,则会看到在别名为dlopen的ctypes的init.py文件中调用了共享对象加载功能。在Windows上,这对应于WINAPI的LoadLibrary方法。 LoadLibrary 正在尝试加载ale_c.dll。 ALE是“街机学习环境”。

在计算机上搜索ale_c.dlllibale_c.dll

如果您有ale_c.dll(很可能是在Windows上),请参考此answer,以了解如我所提到的,用ctypes加载的DLL基本上是LoadLibrary调用。它提到了有关DLL加载顺序等的所有内容。但是,如果您需要快速解决此问题的方法,请将dll复制到system32文件夹下。

答案 3 :(得分:0)

我与Atari-Pacman有类似的问题。通过下载适用于64位Python 3.7的atari_py-1.2.1-cp37-cp37m-win_amd64并使用pip进行安装可以解决该问题。