8

我正在尝试使用 openai gym 模块,但出现此错误:

>>> import atari_py
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Users\ssit5\AppData\Local\Programs\Python\Python38\lib\site-packages\atari_py\__init__.py", line 1, in <module>
    from .ale_python_interface import *
  File "C:\Users\ssit5\AppData\Local\Programs\Python\Python38\lib\site-packages\atari_py\ale_python_interface.py", line 17, in <module>
    ale_lib = cdll.LoadLibrary(os.path.join(os.path.dirname(__file__),
  File "C:\Users\ssit5\AppData\Local\Programs\Python\Python38\lib\ctypes\__init__.py", line 451, in LoadLibrary
    return self._dlltype(name)
  File "C:\Users\ssit5\AppData\Local\Programs\Python\Python38\lib\ctypes\__init__.py", line 373, in __init__
    self._handle = _dlopen(self._name, mode)
FileNotFoundError: Could not find module 'C:\Users\ssit5\AppData\Local\Programs\Python\Python38\lib\site-packages\atari_py\ale_interface\ale_c.dll' (or one of its dependencies). Try using the full path with constructor syntax.

我没有 ale_c.dll 并尝试寻找解决方案但没有任何效果。我在这里遵循了解决方案https://github.com/openai/gym/issues/1726但是在尝试导入 atari_py 时出现了同样的错误。我不明白为什么__init__会搜索模块没有附带的东西。我查看了其他 StackOverflow 问题,但也没有产生任何结果。我能想到的唯一解决方案是获取 ale_c.dll 的副本,但我不知道如何获取它。

4

6 回答 6

11

我面临同样的错误。幸运的是,我找到了一种解决方法。按照这个步骤,你应该很高兴。

  1. ale_c.dll这里下载。
  2. 复制它C:\Users\Deep Raval\AppData\Local\Programs\Python\Python38\Lib\site-packages\atari_py\ale_interface(你的路径可以不同)。
于 2020-09-28T14:39:01.283 回答
2

我试图让它在 Windows 10 上与 python 3.8 和 3.9 一起工作。安装 Python 3.7 并将其用作 PyCharm 上的 Python 解释器解决了这个问题。我在拥有 3.8 + 版本的 Python 时搜索了丢失的文件,但它根本不存在。仅 Python 3.7 ( https://github.com/openai/atari-py ) 支持 Atari-py,因此使用更高版本将无法正常工作。从未经许可的地方下载文件是个坏主意,因此我建议您安装受支持的 Python 版本(3.5、3.6 和 3.7)。即使gym可以在3.9上运行,但atari版本却不行。

只是一个更新,因为gym 0.21.0支持ale-py并且不再使用atari-py(所以如果你使用gym 0.21.0和ale-py(应该附带gym)。确保在安装库时它们实际上是兼容的。链接到新版本的gym https://brosa.ca/blog/ale-release-v0.7。运行v5时,我确实设法渲染游戏,但我找不到其他支持的游戏。如果您使用gym 0.21.0,则不需要atari-py(atari_py)。从示例中:

import gym

env = gym.make('ALE/Breakout-v5',
    obs_type='rgb',                   # ram | rgb | grayscale
    frameskip=5,                     # frame skip
    mode=0,                           # game mode, see Machado et al. 2018
    difficulty=0,                     # game difficulty, see Machado et al. 2018
    repeat_action_probability=0.25,   # Sticky action probability
    full_action_space=True,           # Use all actions
    render_mode=None                  # None | human | rgb_array
)

它确实可以运行,但即使在旧版本的健身房中,游戏也会被破坏。

在尝试了各种 python、gym 和 atari-py 版本后,我设法开始工作的是: 在此处输入图像描述

于 2021-05-15T15:43:00.107 回答
2

对于将来的其他人,我的问题是我遇到了同样的错误,但我已经在正确的文件夹中拥有了 ale_c.dll 文件。

我在此链接上遵循了解决方案-> https://github.com/openai/gym/issues/1726

于 2021-07-14T19:58:19.460 回答
2

尝试从 conda 下载 arari-py 包

conda install -c conda-forge atari_py

即使您使用的是 Python > 3.7,这也将解决您的问题

于 2021-08-04T17:28:20.307 回答
0

我建议从这里为您下载 Windows 和 Python 版本的 Wheel 文件:https ://pypi.org/simple/atari-py/

然后pip install在这个文件上执行,如:

pip install atari_py-0.2.9-cp39-cp39-win_amd64.whl

这对我有帮助(来自 github 的解决方案似乎要好得多,但它对我不起作用 - 可能是因为 venv?) - 对我来说,这是一个比从谷歌驱动器下载 .dll 更安全的解决方案。

于 2021-09-04T11:57:51.527 回答
-2

这是您在使用 Windows 时可能会遇到的问题。

使用以下命令卸载并重新安装 atari:

pip install -f https://github.com/Kojoley/atari-py/releases atari_py 
于 2020-12-11T01:50:32.577 回答