找不到模块 \atari_py\ale_interface\ale_c.dll(或其依赖项之一)

Could not find module \atari_py\ale_interface\ale_c.dll (or one of its dependencies)

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

>>> 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__ 会搜索模块中没有的东西。我查看了其他 Whosebug 问题,但它们也没有产生任何结果。我能想到的唯一解决办法是获取 ale_c.dll 的副本,但我不知道如何获取它。

我遇到了同样的错误。幸运的是,我找到了一种解决方法。按照这些步骤操作,您应该可以开始了。

  1. here 下载 ale_c.dll
  2. 复制到C:\Users\Deep Raval\AppData\Local\Programs\Python\Python38\Lib\site-packages\atari_py\ale_interface(路径可以不同)

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

使用以下方法卸载并重新安装 atari:

pip install -f https://github.com/Kojoley/atari-py/releases atari_py 

我试图让它在 Windows 上与 python 3.8 和 3.9 一起工作 10. 安装 Python 3.7 并将其用作 Python 解释器 PyCharm 解决了这个问题。我在拥有 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 版本不会。

只是一个更新,因为 gym 0.21.0 发布了,它支持 ale-py 而不再使用 atari-py(因此,如果您使用 gym 0.21.0 和 ale-py,任何标记为 v0 - v4 的游戏将不再运行(应该与健身房一起提供)。确保在安装库时它们实际上是兼容的。 Link 到新版健身房 https://brosa.ca/blog/ale-release-v0.7。当 运行ning 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
)

它确实 运行 但即使在旧版本的 gym 中游戏也被破坏了。

在尝试了各种 python、gym 和 atari-py 版本后,我设法开始工作的是:

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

我遵循了这个 link 的解决方案 --> https://github.com/openai/gym/issues/1726

尝试从 conda 下载 arari-py 包

conda install -c conda-forge atari_py

即使您使用的是 Python > 3.7

,这也会解决您的问题

我建议您从这里下载 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 更安全的解决方案来自 google 驱动器。