【问题标题】:Could not find module \atari_py\ale_interface\ale_c.dll (or one of its dependencies)找不到模块 \atari_py\ale_interface\ale_c.dll (或其依赖项之一)
【发布时间】:2020-11-14 17:14:30
【问题描述】:

我正在尝试使用 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 的副本,但我不知道如何获取它。

【问题讨论】:

    标签: python openai


    【解决方案1】:

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

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

    【讨论】:

    • 这就是诀窍,但是那个 DLL 是从哪里来的呢?是否应该有一个“官方”来源去获取它?
    • 我在新笔记本电脑上设置健身房时出现此错误。我试图找到 dll 的官方发行版,但找不到。这就是为什么这里是我的旧笔记本电脑中存在的 dll 查找链接。
    • 我不建议这样做,从某人的个人谷歌驱动器下载可执行代码是一个非常糟糕的主意,并且可能包含恶意代码。
    • 是的,你完全正确。但只要没有可用的官方修复程序,您就可以使用上面的链接。我可以保证它不包含任何恶意内容。
    【解决方案2】:

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

    我在这个链接上关注了一个解决方案 --> https://github.com/openai/gym/issues/1726

    【讨论】:

      【解决方案3】:

      尝试从 conda 下载 arari-py 包

      conda install -c conda-forge atari_py
      

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

      【讨论】:

        【解决方案4】:

        我试图让它在 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一起提供)。确保在安装库时它们实际上是兼容的。 链接到新版健身房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 版本后,我设法开始工作的是:

        【讨论】:

          【解决方案5】:

          我建议您从这里下载适用于 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 更安全的解决方案。

          【讨论】:

            【解决方案6】:

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

            卸载并重新安装 atari 使用:

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

            【讨论】:

              猜你喜欢
              • 2022-12-31
              • 2022-10-30
              • 1970-01-01
              • 2016-05-14
              • 1970-01-01
              • 2015-01-16
              • 2020-06-16
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多