AttributeError:“TaxiEnv”对象没有属性“s”

Anw*_*Roy 1 python anaconda jupyter-notebook openai-gym

我正在尝试使用 OpenAI Gym 的 TaxiEnvironment。我编写了以下几行代码,但收到以下错误。

import numpy as np
import gym
import random
env = gym.make("Taxi-v3")
env.render()
Run Code Online (Sandbox Code Playgroud)

错误:

AttributeError                            Traceback (most recent call last)
C:\Users\KESABC~1\AppData\Local\Temp/ipykernel_11956/4159949162.py in <module>
      1 env = gym.make("Taxi-v3")
----> 2 env.render()

~\anaconda3\lib\site-packages\gym\core.py in render(self, mode, **kwargs)
    284 
    285     def render(self, mode="human", **kwargs):
--> 286         return self.env.render(mode, **kwargs)
    287 
    288     def close(self):

~\anaconda3\lib\site-packages\gym\core.py in render(self, mode, **kwargs)
    284 
    285     def render(self, mode="human", **kwargs):
--> 286         return self.env.render(mode, **kwargs)
    287 
    288     def close(self):

~\anaconda3\lib\site-packages\gym\envs\toy_text\taxi.py in render(self, mode)
    220         out = self.desc.copy().tolist()
    221         out = [[c.decode("utf-8") for c in line] for line in out]
--> 222         taxi_row, taxi_col, pass_idx, dest_idx = self.decode(self.s)
    223 
    224         def ul(x):

AttributeError: 'TaxiEnv' object has no attribute 's'
Run Code Online (Sandbox Code Playgroud)

我应该怎么做才能消除错误?

fur*_*ras 6

代码在gym 0.19中有效,但在0.23中无效,但真正的问题是你以错误的方式使用它。

你必须在开始时设置默认值 - env.reset()- 它就会起作用。

import gym

env = gym.make("Taxi-v3")
env.reset()
env.render()
Run Code Online (Sandbox Code Playgroud)