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

使用Stable Baselines3时自定义Gym环境已继承gym.Env仍报错求助

解决自定义Gym环境继承gym.Env仍触发AssertionError的问题

核心原因

Stable Baselines3 2.0.0a5版本开始默认适配Gymnasium(原OpenAI Gym的官方维护分支),而你当前使用的是旧版OpenAI Gym的gym.Env类,导致SB3的check_env函数无法识别环境的继承关系,触发断言错误。

解决方法

方法1:切换到Gymnasium(推荐)

  1. 安装Gymnasium
pip install gymnasium
  1. 修改环境类的导入与继承代码
import gymnasium as gym

class v1(gym.Env):
    """GYM functions"""
    def __init__(self):
        super().__init__()
        # 你的环境实现代码
  1. 保持原调用代码不变,重新运行即可。

方法2:适配旧版OpenAI Gym(不推荐)

如果你必须使用旧版OpenAI Gym,需要确保SB3与Gym版本兼容:

  1. 安装与SB3 2.0.0a5兼容的旧版Gym
pip install gym==0.26.2
  1. 验证环境继承关系,添加调试代码确认:
gym_env = v1()
print(isinstance(gym_env, gym.Env))  # 应返回True
check_env(gym_env)

如果返回False,说明存在多个Gym版本冲突,执行以下命令清理后重新安装:

pip uninstall -y gym gymnasium
pip install gym==0.26.2

方法3:检查类继承的正确性

确保你的环境类正确调用了父类的初始化方法,且没有导入错误的gym模块。可以打印类的继承链确认:

print(v1.__mro__)

输出应包含<class 'gym.core.Env'>(旧版Gym)或<class 'gymnasium.core.Env'>(Gymnasium)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 23:02:43