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

use*_*651 4 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 
Run Code Online (Sandbox Code Playgroud)

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

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

小智 6

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

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

这不是最优雅的方式,但它完成了。

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

请注意有以下限制:

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

就我而言,我有兴趣使用 pygame 来实现动画目的,所以我对此并不太困惑。


fur*_*ras 5

PyGame只能使用本地显卡和本地显示器。

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

但您甚至无法运行它,因为通常服务器没有显卡和显示器,因为没有人可以看到该显示器(服务器管理员除外)。


编辑:如果服务器有显卡那么你必须pygame.display.init()先运行list_modes()

 pygame.display.init()
 print( pygame.display.list_modes() )
Run Code Online (Sandbox Code Playgroud)

或者pygame.init()应该运行哪个pygame.display.init()(以及其他init()

 pygame.init()
 print( pygame.display.list_modes() )
Run Code Online (Sandbox Code Playgroud)