Python Turtle window 每 2 次崩溃 运行

Python Turtle window crashes every 2nd time running

下面的代码是在 python.

中使用 Turtle 绘制的基本方形图

运行 代码第一次有效。但是 运行再次激活代码会激活一个无响应的 Turtle window,随后每次都会崩溃。

错误信息包括raise TerminatorTerminator

在 Spyder 中重新启动内核(Python 戴尔台式机上的 3.6)修复了问题,因为我可以再次成功 运行 代码,但根本原因是个谜?

Link 另一个类似但尚未回答的问题。

如果您觉得这个问题值得回答,请+1!!

import turtle
bob = turtle.Turtle()
print(bob)
for i in range(4):
    bob.fd(100)
    bob.lt(90)

turtle.mainloop()

我意识到这似乎完全不能令人满意,但我发现用以下方法创建海龟:

try:
    tess = turtle.Turtle()
except:
    tess = turtle.Turtle()  

有效(即消除了 "working every other time" 部分。我也从

开始
wn = turtle.Screen()

并以

结尾
from sys import platform
if platform=='win32':
    wn.exitonclick()

如果没有这些部分,如果我尝试移动 Windows 中的乌龟图形 windows,事情就会崩溃。 (运行 Spyder for Python 3.6 在 Windows 机器上) 编辑:当然,OSX 在没有 exitonclick() 命令的情况下非常高兴并且对此不满意所以添加了平台特定版本的结尾 "feature fix." [=27= 仍然需要 try...except 部分].

该模块使用一个 class 变量 _RUNNING,当在 spyder 中 运行 而不是 运行 它作为一个自包含脚本时,它在执行之间保持为真。我已请求更新模块。

与此同时,工作 around/working 超出 DukeEgr93 提议的例子

1)

import importlib
import turtle

importlib.reload(turtle)

bob = turtle.Turtle()
print(bob)
for i in range(4):
    bob.fd(100)
    bob.lt(90)

turtle.mainloop()


import importlib
import turtle

turtle.TurtleScreen._RUNNING=True
bob = turtle.Turtle()
print(bob)
for i in range(4):
    bob.fd(100)
    bob.lt(90)

turtle.mainloop()