我们如何在Google Colab上使用pygame?

时间:2019-07-15 16:35:35

标签: python pygame google-colaboratory

我正在尝试使用q learning来使我的游戏自动化,并且正在考虑使用colab来获得其他一些GPU支持。安装需求并运行代码后,colab会发出此错误:

> error:
> Traceback (most recent call last)
<ipython-input-16-28b090095233> in <module>()
      5 
      6 pygame.font.init()
----> 7 pygame.display.list_modes()
      8 pygame.init()
      9 

>error: video system not initialized 

如果有人可以解决此错误或告诉我如何使用VNC解决此问题。

我尝试过pygame .init()pygame.display.list_modes()

2 个答案:

答案 0 :(得分:2)

PyGame只能使用本地视频卡和本地监视器。

当您在服务器上运行代码时,它会尝试使用服务器中安装的视频卡并监视连接到该服务器的监视器(您看不到)。

但是您甚至无法运行它,因为通常服务器没有视频卡和监视器,因为没有人可以看到此监视器(服务器的管理员除外)。


编辑:如果服务器具有视频卡,则必须在pygame.display.init()之前运行list_modes()

 pygame.display.init()
 print( pygame.display.list_modes() )

pygame.init(),应运行pygame.display.init()(和其他init()

 pygame.init()
 print( pygame.display.list_modes() )

答案 1 :(得分:1)

有一种方法可以在Colab中运行pygame,但有一些限制。

  1. 让系统认为存在视频设备
  2. 捕获pygame屏幕并将其复制到与Colab兼容的另一个界面,例如OpenCV或matplotlib
  3. 使用输出库清除单元格。

这不是最优雅的方法,但是可以做到。

看看我创建的笔记本:(https://colab.research.google.com/drive/1xtiBrGeRHmXY3KSOixkZBf_rJIgBImJu?usp=sharing

请注意有限制:

  1. 无法从键盘或鼠标读取输入
  2. 无法播放音频

就我而言,我有兴趣将pygame用于动画目的,因此我对此并不感到困惑。