断言错误:pygame 出了点问题。这绝对不应该发生。(导入健身房时)

问题描述 投票:0回答:4

我尝试按如下方式导入gym:

import gym

env = gym.make("Taxi-v3")
env.reset()
env.render()

然后编译器说缺少 pygame。所以我安装了 pygame 并重新运行代码并收到错误:

---------------------------------------------------------------------------
AssertionError                            Traceback (most recent call last)
Input In [8], in <cell line: 5>()
      3 env = gym.make("Taxi-v3")
      4 env.reset()
----> 5 env.render()

File ~\Anaconda3\envs\pytorch\lib\site-packages\gym\core.py:329, in Wrapper.render(self, *args, **kwargs)
    325 def render(
    326     self, *args, **kwargs
    327 ) -> Optional[Union[RenderFrame, List[RenderFrame]]]:
    328     """Renders the environment."""
--> 329     return self.env.render(*args, **kwargs)

File ~\Anaconda3\envs\pytorch\lib\site-packages\gym\wrappers\order_enforcing.py:51, in OrderEnforcing.render(self, *args, **kwargs)
     46 if not self._disable_render_order_enforcing and not self._has_reset:
     47     raise ResetNeeded(
     48         "Cannot call `env.render()` before calling `env.reset()`, if this is a intended action, "
     49         "set `disable_render_order_enforcing=True` on the OrderEnforcer wrapper."
     50     )
---> 51 return self.env.render(*args, **kwargs)

File ~\Anaconda3\envs\pytorch\lib\site-packages\gym\wrappers\env_checker.py:53, in PassiveEnvChecker.render(self, *args, **kwargs)
     51 if self.checked_render is False:
     52     self.checked_render = True
---> 53     return env_render_passive_checker(self.env, *args, **kwargs)
     54 else:
     55     return self.env.render(*args, **kwargs)

File ~\Anaconda3\envs\pytorch\lib\site-packages\gym\utils\passive_env_checker.py:316, in env_render_passive_checker(env, *args, **kwargs)
    310     else:
    311         assert env.render_mode is None or env.render_mode in render_modes, (
    312             "The environment was initialized successfully however with an unsupported render mode. "
    313             f"Render mode: {env.render_mode}, modes: {render_modes}"
    314         )
--> 316 result = env.render(*args, **kwargs)
    318 # TODO: Check that the result is correct
    320 return result

File ~\Anaconda3\envs\pytorch\lib\site-packages\gym\envs\toy_text\taxi.py:284, in TaxiEnv.render(self)
    282     return self._render_text()
    283 else:  # self.render_mode in {"human", "rgb_array"}:
--> 284     return self._render_gui(self.render_mode)

File ~\Anaconda3\envs\pytorch\lib\site-packages\gym\envs\toy_text\taxi.py:302, in TaxiEnv._render_gui(self, mode)
    299     elif mode == "rgb_array":
    300         self.window = pygame.Surface(WINDOW_SIZE)
--> 302 assert (
    303     self.window is not None
    304 ), "Something went wrong with pygame. This should never happen."
    305 if self.clock is None:
    306     self.clock = pygame.time.Clock()

AssertionError: Something went wrong with pygame. This should never happen.

我已经用 pip install pygame 安装了 pygame 并且安装成功了。 请帮助解决此错误。

python pygame openai-gym
4个回答
4
投票

尝试做

pip stable_baselines3
对我来说,它强制重新安装健身房(?),现在它可以工作了。 让我知道这是否对你有用。


3
投票

像这样编写代码...

> import gym
> env = gym.make("Taxi-v3",render_mode='ansi')
> env.reset()
> print(env.render())

0
投票

尝试做

pip install stable-baselines3[额外]


0
投票

要解决您的问题,现在您需要在render_mode

中添加
gym.make()

  • 如果你想直接输出文本到终端,你应该添加
    render_mode='ansi'
    。输出数据将使用
    print
    输出到终端:
>>> env = gym.make("Taxi-v3",render_mode='ansi')
>>> env.reset()
>>> print(env.render())
+---------+
|R: | : :G|
| : | : : |
| : : : : |
| | : | : |
|Y| : |B: |
+---------+
  • 如果你想用弹出的
    pygame
    窗口显示游戏,你应该添加
    render_mode='human'
    :
>>> env = gym.make("Taxi-v3",render_mode='human')
>>> env.reset()
>>> env.render()
© www.soinside.com 2019 - 2024. All rights reserved.