使用环境的python类继承“无法重新注册id”

问题描述

gym-pybullet-drones github 的启发,我想将一个健身房环境作为基础(用于物理和主要结构),并在该基础上定义不同的奖励和完成作为其他环境(通过 python 类继承)。>

文件类似于这些:

基础环境文件

import gym
class SimpleBaseEnv(gym.Env):
    def __init__(self):
        ...

    def step(self,action):
        ...

    def compute_done(self):
        raise NotImplementedError

    def compute_reward(self):
        raise NotImplementedError

    def compute_obervations(self):
        ...

    def reset(self):
        ...

奖励和完成的 env 文件

from <path/from/project/to/base_env> import SimpleBaseEnv
class FirstTaskEnv(SimpleBaseEnv):
    def __init__(self):
        super().__init__()

    def compute_reward(self):
        ...
        return reward_value

    def compute_done(self):
        ...
        return done

问题是如果我在FirstTaskEnv文件中导入需要的基础环境(继承类),报错

健身房错误:无法重新注册 ID

有什么办法可以像我想要的那样做吗?其他可行的解决方案是在同一个基本环境文件中定义新环境 (FirstTaskEnv),但如果可能的话,我希望在分离的文件和环境中进行。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)