You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

OpenAI Gym MountainCar-v0环境观测空间与step函数解包报错问询

OpenAI Gym MountainCar-v0环境问题解决

问题情况

运行MountainCar-v0环境时,观测空间的显示格式和教程预期不符,且后续调用step()方法时出现解包错误。

代码与输出对比

测试代码

import gym
env = gym.make('MountainCar-v0')
obs_space = env.observation_space
action_space = env.action_space
print("The observation space: {}".format(obs_space))
print("The action space: {}".format(action_space))

预期输出

OUTPUT:
The observation space: Box(2,)
The action space: Discrete(3)

实际输出

The observation space: Box([-1.2  -0.07], [0.6  0.07], (2,), float32)
The action space: Discrete(3)

后续操作报错

执行以下代码:

obs = env.reset()
random_action = env.action_space.sample()
new_obs, reward, done, info = env.step(random_action)
print("The new observation is {}".format(new_obs))

得到错误:

ValueError                                Traceback (most recent call last)
Input In [4], in <cell line: 11>()
      8 random_action = env.action_space.sample()
     10 # # Take the action and get the new observation space
---&gt; 11 new_obs, reward, done, info = env.step(random_action)
     12 print("The new observation is {}".format(new_obs))

ValueError: too many values to unpack (expected 4)

问题原因与解决方法

这两个问题都是Gym版本差异导致的:

  1. 观测空间显示差异
    旧版Gym(0.x系列)的Box空间打印格式为Box(2,),而新版Gymnasium(原Gym的官方后续项目,很多教程仍沿用Gym名称)会详细打印出空间的上下界、形状和数据类型。但本质上观测空间还是2维的,只是显示格式不同,无需额外处理。

  2. step方法解包错误
    新版Gymnasium的step()方法返回5个值:observation, reward, terminated, truncated, info,其中terminated表示环境达到终止条件(比如任务完成),truncated表示因时间步限制等外部因素提前结束。而旧版Gym仅返回4个值(无truncated)。

    解决方式二选一:

    • 适配新版格式,修改解包代码:
      new_obs, reward, terminated, truncated, info = env.step(random_action)
      # 若无需区分两种结束状态,可合并为done:
      done = terminated or truncated
      print("The new observation is {}".format(new_obs))
      
    • 安装旧版Gym以匹配教程:
      pip install gym==0.21.0
      

内容的提问来源于stack exchange,提问作者user2276283

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.07 06:10:50