健身房的自定义环境错误:无法重新注册ID

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

我想创建自己的健身环境。我已按照此处说明的步骤进行操作:https://github.com/openai/gym/blob/master/docs/creating-environments.md。根据他们的建议,我创建了环境(link:https://drive.google.com/open?id=1RmcSBZYKCARaNsdlOsACrk9ls8snqxlj)。在安装和运行环境之后,将创建环境并显示打印输出“ Created,Step”。但是,当我再次按下“运行”按钮(spyder ide:python3.7)时,它向我显示了“错误:无法重新注册ID:foo-v0”。如果按“重新启动内核”按钮,该问题将暂时消失。但是再次“运行”将显示相同的错误。请帮助我解决这个问题。

runfile('F:/gym-foo/a.py', wdir='F:/gym-foo')
Created
Step

runfile('F:/gym-foo/a.py', wdir='F:/gym-foo')
Reloaded modules: gym_foo, gym_foo.envs, gym_foo.envs.foo_env
Traceback (most recent call last):

  File "F:\gym-foo\a.py", line 3, in <module>
    env = gym.make('gym_foo:foo-v0')

  File "C:\Users\nasif\anaconda3\lib\site-packages\gym\envs\registration.py", line 142, in make
    return registry.make(id, **kwargs)

  File "C:\Users\nasif\anaconda3\lib\site-packages\gym\envs\registration.py", line 86, in make
    spec = self.spec(path)

  File "C:\Users\nasif\anaconda3\lib\site-packages\gym\envs\registration.py", line 106, in spec
    importlib.import_module(mod_name)

  File "C:\Users\nasif\anaconda3\lib\importlib\__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)

  File "<frozen importlib._bootstrap>", line 1006, in _gcd_import

  File "<frozen importlib._bootstrap>", line 983, in _find_and_load

  File "<frozen importlib._bootstrap>", line 967, in _find_and_load_unlocked

  File "<frozen importlib._bootstrap>", line 677, in _load_unlocked

  File "<frozen importlib._bootstrap_external>", line 728, in exec_module

  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed

  File "F:\gym-foo\gym_foo\__init__.py", line 5, in <module>
    entry_point='gym_foo.envs:FooEnv',

  File "C:\Users\nasif\anaconda3\lib\site-packages\gym\envs\registration.py", line 139, in register
    return registry.register(id, **kwargs)

  File "C:\Users\nasif\anaconda3\lib\site-packages\gym\envs\registration.py", line 132, in register
    raise error.Error('Cannot re-register id: {}'.format(id))

Error: Cannot re-register id: foo-v0
python-3.x openai-gym
1个回答
0
投票

我今天有同样的问题。我大约有90%的人确定您已经在网上找到了答案,但万一另一个人需要帮助:]

import gym
env_dict = gym.envs.registration.registry.env_specs.copy()
for env in env_dict:
    if 'foo' in env:
        print("Remove {} from registry".format(env))
        del gym.envs.registration.registry.env_specs[env]
import foo_env

这将在jupyter实验室或终端中摆脱当前python会话中的原始foo_env

© www.soinside.com 2019 - 2024. All rights reserved.