【问题标题】:Using turtle graphics in Google colab在 Google colab 中使用海龟图形
【发布时间】:2019-11-14 13:02:06
【问题描述】:

我正在与使用 Google colab 的学生一起工作。我试着向她介绍海龟图形。我们得到这个错误:TclError: no display name and no $DISPLAY environment variable。 当我尝试查找错误时,所有解决方案都非常特定于 matplotlib。这对我的学生有用,无需进行任何调整。 我正在寻找一种更普遍或至少适用于turtle和tkinter的解决方案。

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

进口乌龟 海龟.forward(100)

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

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

TclError Traceback(最近一次调用最后一次) 在 () ----> 1个turtle.forward(100)

5 帧 /usr/lib/python3.6/tkinter/init.py in init(self、screenName、baseName、className、useTk、sync、use) 2021 基本名称 = 基本名称 + 分机 2022 互动 = 0 -> 2023 self.tk = _tkinter.create(screenName, baseName, className, interactive, wantobjects, useTk, sync, use) 2024 如果使用Tk: 2025 self._loadtk()

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

【问题讨论】:

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


    【解决方案1】:

    用于 Google Colab 笔记本的 Turtle 谷歌 Colab 的安装: 创建一个空的代码单元并输入:

    !pip3 install ColabTurtle
    

    运行代码单元。

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

    from ColabTurtle.Turtle import *
    

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

    initializeTurtle()
    

    【讨论】:

      【解决方案2】:

      创建一个空代码单元,输入以下 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)
      

      你没有让学生习惯于使用物体和 他们看不到工具提示(例如对象的可用方法和属性)。

      【讨论】:

        【解决方案3】:

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

        【讨论】:

          【解决方案4】:

          Turtle 使用 Tk 作为窗口显示。但是 Colab 服务器在 Internet 上,它无法在您的机器上打开一个新窗口并在那里发送显示。因此,您不能(轻松)在 Colab 上使用 Turtle。

          如果你真的想要,有一个很难的方法是使用虚拟显示,然后捕获屏幕来显示。但我觉得太难了。

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

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

          【讨论】:

            猜你喜欢
            • 2020-05-11
            • 1970-01-01
            • 2011-12-12
            • 2018-05-30
            • 2014-03-18
            • 1970-01-01
            • 1970-01-01
            • 2012-05-17
            • 2017-06-06
            相关资源
            最近更新 更多