我正在和一位使用 Google colab 的学生一起工作。我尝试向她介绍海龟图形。我们收到此错误:TclError:没有显示名称,也没有 $DISPLAY 环境变量。 当我尝试查找错误时,所有解决方案都非常特定于 matplotlib。这对我的学生来说很有效,无需进行任何调整。 我正在寻找一种更普遍的解决方案,或者至少适用于海龟和 tkinter。
学生正在使用 Chrome 图书。她在学校用的是Google colab,如果可以的话,在那种环境下解决问题是最好的。尝试创建一个 Turtle 对象,但这产生了相同的错误。 我对错误进行了搜索,我能找到的所有帖子都讨论了 matplotlib 的这个问题。这种情况下的解决方案是通过调用 .use('Agg') 来覆盖我认为的渲染选项。我没有看到乌龟的明显等价物。 我还尝试使用 matplotlib,看看我们是否收到了我在帖子中看到的错误。我们尝试了一个简单的 matplotlib 示例,它无需任何更改即可运行。图形输出按预期出现。
进口龟 海龟.forward(100)
我希望在结果中绘制海龟图形。
TclError Traceback(最近一次调用最后一次) 在 () ----> 1 海龟.forward(100)
5帧 /usr/lib/python3.6/tkinter/init.py 中 init(self,screenName,baseName,className,useTk,sync,use) 2021 基本名称 = 基本名称 + 分机号 2022 互动 = 0 -> 2023 self.tk = _tkinter.create(屏幕名称,基本名称,类名称,交互式,wantobjects,useTk,同步,使用) 2024 如果使用Tk: 2025 self._loadtk()
TclError:没有显示名称,也没有 $DISPLAY 环境变量
适用于 Google Colab 笔记本的 Turtle Google Colab 的安装: 创建一个空的代码单元并输入:
!pip3 install ColabTurtle
运行代码单元。
使用方法 在任何代码单元中,如下所示导入:
from ColabTurtle.Turtle import *
由于 Colab 在运行时存储声明的变量,因此在使用之前调用:
initializeTurtle()
创建一个空代码单元,输入以下 pip 命令并运行它:
!pip3 install ColabTurtle
我建议你像这样使用你的乌龟(在单独的代码片段中):
import ColabTurtle.Turtle as lia
lia.initializeTurtle(initial_speed=5)
lia.color('blue')
lia.forward(100)
lia.right(45)
lia.color('red')
lia.forward(50)
您实际上可以使用直接调用(跳过所有 lia 对象引用),但这不是一个好主意,恕我直言,因为您希望您的学生习惯使用实例。这种简化的(不太推荐的方式)看起来像这样:
import ColabTurtle
forward(100)
right(90)
forward(100)
你没有让学生习惯使用物体和 他们看不到工具提示(例如对象的可用方法和属性)。
我更喜欢使用 https://repl.it/ 来教 Turtle(有一个特定的选项可以做到这一点)。
Turtle 使用 Tk 作为 Window 显示。但是Colab服务器位于互联网上,它无法在您的计算机上打开新窗口并向那里发送显示。因此,您无法(轻松)在 Colab 上使用 Turtle。
如果你真的想,有一个很难的方法,你可以使用虚拟显示,并捕获屏幕来显示。但我觉得太难了
如果你想在浏览器上教他们乌龟,这里有一个用 JavaScript 实现的。
https://rawgit.com/wrschneider99/js-turtle/master/turtle.html