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

运行Super Mario Bros RL代码遇JoypadSpace.reset() TypeError,如何修复?

问题:运行马里奥强化学习代码时出现TypeError: JoypadSpace.reset() got an unexpected keyword argument 'seed'

代码示例

from nes_py.wrappers import JoypadSpace
import gym
import gym_super_mario_bros
from gym_super_mario_bros.actions import SIMPLE_MOVEMENT
from gym.wrappers import GrayScaleObservation
from stable_baselines3.common.vec_env import VecFrameStack,DummyVecEnv
from matplotlib import pyplot as plt

env = gym_super_mario_bros.make('SuperMarioBros-v0',apply_api_compatibility=True,render_mode="human")
env = JoypadSpace(env, SIMPLE_MOVEMENT)
env = GrayScaleObservation(env,keep_dim=True)
env = DummyVecEnv([lambda:env])
env = VecFrameStack(env,4,channels_order='last')
state = env.reset()

报错信息

TypeError: JoypadSpace.reset() got an unexpected keyword argument 'seed'

修复方案

方案1:降级Gym版本到0.21.x

Gym 0.26+版本在reset方法中新增了seed等参数,但旧版nes-py的JoypadSpace未适配该API。执行以下命令降级:

pip install gym==0.21.0

方案2:自定义兼容版JoypadSpace包装器

如果想保留高版本Gym,可以自定义包装器覆盖reset方法,忽略不支持的参数:

from nes_py.wrappers import JoypadSpace as OriginalJoypadSpace
import gym
import gym_super_mario_bros
from gym_super_mario_bros.actions import SIMPLE_MOVEMENT
from gym.wrappers import GrayScaleObservation
from stable_baselines3.common.vec_env import VecFrameStack,DummyVecEnv
from matplotlib import pyplot as plt

# 自定义兼容的JoypadSpace
class JoypadSpace(OriginalJoypadSpace):
    def reset(self, **kwargs):
        # 忽略seed等不支持的参数,调用原方法
        return super().reset()

# 正常初始化环境,使用自定义的JoypadSpace
env = gym_super_mario_bros.make('SuperMarioBros-v0',apply_api_compatibility=True,render_mode="human")
env = JoypadSpace(env, SIMPLE_MOVEMENT)
env = GrayScaleObservation(env,keep_dim=True)
env = DummyVecEnv([lambda:env])
env = VecFrameStack(env,4,channels_order='last')
state = env.reset()

方案3:升级nes-py到最新版本

检查nes-py是否已修复该兼容性问题,执行升级命令:

pip install --upgrade nes-py

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 16:12:46