如何在Google Collab笔记本中模拟Python按键?

2022-03-15 00:00:00 python google-colaboratory

问题描述

我已经用Python开发了一个Collab笔记本,它打算模拟键盘按键,以便玩一个游戏,作为强化学习的一部分,它将监控该游戏。我尝试使用了几个建议(如pyautogui、Quartz等),但我甚至无法导入这些库。

例如,当我安装pyautogui和Xlib并尝试导入pyautogui时,它显示KeyError:‘display’。但是,从终端运行时,pyautogui在我的本地计算机上工作正常。

同样,在将(!PIP Install pynput)pynput安装到Collab笔记本后,当我尝试将其导入时,它显示DisplayNameError:Bad Display Name"",我对此一无所知。

我甚至尝试了getkey模块,但是从getkey导入getkey,key没有成功。

有没有办法让它正常工作?另外,有谁能解释一下为什么这些模块在我的本地硬件上工作得很好,但在Google Collab上却不行?另外,请推荐可以在Collab上运行良好的这些模块的任何替代方案?

非常感谢。


解决方案

当您在本地计算机上使用此类模块时,它将与硬件连接以获取鼠标/键盘/监视器事件。

但是,Google Colab在Google Cloud中的计算机实例上运行。那里的Python无法访问您的键盘/监视器。您只能通过浏览器与Colab交互。

另一种方法是使用JavaScript获取这些事件并将其传递给Python。 我在这里举例说明如何从JS连接到PY,作为要点。

https://gist.github.com/korakot/d10a43490f3da17d4915cdc1f200b180

我警告你,这件事很难做。必须实现JS和PY之间的来回传递操作。

我建议您只在本地计算机上执行此操作。如果您喜欢Colab,您可以使用本地运行时。

https://research.google.com/colaboratory/local-runtimes.html

相关文章