这是我第一次使用机器学习库,我曾经自己做过,当我做的时候就做过,但是我猜想,当每个人都告诉你不要自己做这项工作并让这些库为你做的时候,你最终尝试了,我在python上尝试了OpenAI的“健身房”,我的代码非常简单(我在youtube视频中找到了该视频,该视频解释了如何使用该库,因为我不知道自己要怎么做)

    import gym

env = gym.make("MountainCar-v0")
env.reset()

done = False

while not done:
    action = 2
    newState, reward, done, _ = env.step(action)
    env.render()

env.close()


此代码返回此错误:


  追溯(最近一次通话):
    在getattr中的文件“ C:\ Users \ user \ PycharmProjects \ TestOnGymLibrary \ venv \ lib \ site-packages \ pyglet__init __。py”,行378
      返回getattr(self._module,name)
  AttributeError:“ NoneType”对象没有属性“ get_default”
  
  在处理上述异常期间,发生了另一个异常:
  
  追溯(最近一次通话):
    文件“ C:/用户/用户/ PycharmProjects / TestOnGymLibrary / me / RoeeHerzovich / TestOnGymLibrary
  
  /Core.py”,第11行
      env.render()
    渲染中的文件“ C:\ Users \ user \ PycharmProjects \ TestOnGymLibrary \ venv \ lib \ site-packages \ gym \ core.py”,第235行
      返回self.env.render(mode,** kwargs)
    文件“ C:\ Users \ user \ PycharmProjects \ TestOnGymLibrary \ venv \ lib \ site-packages \ gym \ envs \ classic_control \ mountain_car.py”,渲染中
      从gym.envs.classic_control导入渲染
    文件“ C:\ Users \ user \ PycharmProjects \ TestOnGymLibrary \ venv \ lib \ site-packages \ gym \ envs \ classic_control \ rendering.py”,第27行,在
      从pyglet.gl导入*
    第239行中的文件“ C:\ Users \ user \ PycharmProjects \ TestOnGymLibrary \ venv \ lib \ site-packages \ pyglet \ gl__init __。py”
      导入pyglet.window
    1896行中的文件“ C:\ Users \ user \ PycharmProjects \ TestOnGymLibrary \ venv \ lib \ site-packages \ pyglet \ window__init __。py”
      gl._create_shadow_window()
    文件“ C:\ Users \ user \ PycharmProjects \ TestOnGymLibrary \ venv \ lib \ site-packages \ pyglet \ gl__init __。py”,行208,在_create_shadow_window中
      _shadow_window =窗口(宽度= 1,高度= 1,可见=假)
    初始化文件“ C:\ Users \ user \ PycharmProjects \ TestOnGymLibrary \ venv \ lib \ site-packages \ pyglet \ window \ win32__init __。py”,第134行
      超级(Win32Window,self).init(* args,** kwargs)
    初始化文件“ C:\ Users \ user \ PycharmProjects \ TestOnGymLibrary \ venv \ lib \ site-packages \ pyglet \ window__init __。py”,第501行
      display = get_platform()。get_default_display()
    在get_default_display中的第1845行,文件“ C:\ Users \ user \ PycharmProjects \ TestOnGymLibrary \ venv \ lib \ site-packages \ pyglet \ window__init __。py”
      返回pyglet.canvas.get_display()
    在get_display中的文件“ C:\ Users \ user \ PycharmProjects \ TestOnGymLibrary \ venv \ lib \ site-packages \ pyglet \ canvas__init __。py”,第77行
      从pyglet.app导入显示
    在第175行的文件“ C:\ Users \ user \ PycharmProjects \ TestOnGymLibrary \ venv \ lib \ site-packages \ pyglet \ app__init __。py”中
      event_loop = EventLoop()
    初始化文件“ C:\ Users \ user \ PycharmProjects \ TestOnGymLibrary \ venv \ lib \ site-packages \ pyglet \ app \ base.py”,第119行
      self.clock = clock.get_default()
    getattr中的文件“ C:\ Users \ user \ PycharmProjects \ TestOnGymLibrary \ venv \ lib \ site-packages \ pyglet__init __。py”,行384
      导入(import_name)
    第166行的文件“ C:\ Users \ user \ PycharmProjects \ TestOnGymLibrary \ venv \ lib \ site-packages \ pyglet \ clock.py”
      _default_time_function = time.clock
  AttributeError:模块“时间”没有属性“时钟”


我曾尝试在这个地方寻找,但是我还没有看到……
我安装了Gym,matplotlib和pyglet,我检查了它们,甚至尝试升级它们,并说它已经升级,所以我不知道发生了什么。有人可以帮我吗?

我感谢您的所有评论:)

最佳答案

真正的错误来自于您发布的跟踪的底部:

_default_time_function = time.clock AttributeError: module 'time' has no attribute 'clock'

here已解决此错误。

选项:

找到在哪里调用time.clock(),并将其更改为time.perf_counter()

降级至3.7

关于python - OpenAI“gym”库在env.render()上引发NoneType错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/59742262/

10-12 16:52