如何在Google Collab笔记本中模拟Python按键?
问题描述
我已经用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
相关文章