在Google Colab中使用乌龟图形

时间:2019-07-03 19:35:33

标签: python-3.x turtle-graphics google-colaboratory

我正在与一个使用Google colab的学生一起工作。我尝试向她介绍乌龟图形。我们收到此错误:TclError:没有显示名称,也没有$ DISPLAY环境变量。 当我尝试查找错误时,所有解决方案都非常特定于matplotlib。这对我的学生没有任何调整就起作用了。 我正在为此寻找一种解决方案,该解决方案更普遍或更适合至少与turtle和tkinter一起使用。

学生正在使用一本书。她在学校使用Google colab,如果可能的话,最好在那种环境下解决问题。确实尝试创建了Turtle对象,但这产生了相同的错误。 我对所有错误进行了搜索,找到了与matplotlib有关的问题。在这种情况下,解决方案是通过调用.use('Agg')来覆盖我认为的渲染选项。我没有看到明显等同于乌龟的东西。 我还尝试使用matplotlib,以查看是否收到了我在帖子中看到的错误。我们尝试了一个简单的matplotlib示例,该示例无需任何更改即可工作。图形输出显示为预期。

进口龟 turtle.forward(100)

我希望在结果中绘制乌龟图形。

我实际上得到的是这些错误:

TclError跟踪(最近一次通话)  在()中 ----> 1个turtle.forward(100)

5幅 /usr/lib/python3.6/tkinter/init.py in init ((self,screenName,baseName,className,useTk,sync,use)    2021年baseName = baseName +分机    2022互动= 0 -> 2023 self.tk = _tkinter.create(screenName,baseName,className,交互式,wantobjects,useTk,sync,use)    2024如果useTk:    2025年self._loadtk()

TclError:没有显示名称,没有$ DISPLAY环境变量

4 个答案:

答案 0 :(得分:0)

使用Tk作为窗口显示龟。但是Colab服务器位于Internet上,它无法在您的计算机上打开新窗口并将显示发送到该计算机。因此,您不能(轻松)在Colab上使用Turtle。

如果您确实想要,可以使用虚拟显示和捕获屏幕来显示的困难方法。但我认为这太难了。

如果您想在浏览器上教乌龟,这里有一个用JavaScript实现的

https://rawgit.com/wrschneider99/js-turtle/master/turtle.html

答案 1 :(得分:0)

我更喜欢使用https://repl.it/来教Turtle(有一个特定的选项可以做到这一点)。

答案 2 :(得分:0)

用于Google Colab笔记本的海龟 安装Google Colab: 创建一个空的代码单元格并输入:

!pip3 install ColabTurtle

运行代码单元。

用法 在任何代码单元中,按如下所示导入:

from ColabTurtle.Turtle import *

由于Colab在运行时中存储了已声明的变量,因此请在使用前调用它:

initializeTurtle()

答案 3 :(得分:0)

创建一个空的代码单元,键入以下pip命令并运行它:

!pip3 install ColabTurtle

在单独的代码中使用乌龟

from ColabTurtle.Turtle import * #or simply import ColabTurtle should work fine

alex = ColabTurtle.Turtle
alex.initializeTurtle()
alex.forward(100)
alex.right(90)
alex.forward(100)

您实际上可以使用直接调用(跳过所有alex对象的引用),但是恕我直言,这不是一个好主意:

import ColabTurtle
forward(100)
right(90)
forward(100)

因为您不是让学生习惯使用物体和 他们看不到可用方法的工具提示。