我正在尝试在Spyder和Jupyter中使用Turtle,但是在尝试关闭窗口时遇到了麻烦。
我在Windows 10的Spyder 3.3.1和Jupyter 5.6.0上使用Python 3.7
这是我尝试过的
import turtle as trtl
trtl.forward(100)
trtl.left(90)
trtl.forward(100)
trtl.left(90)
trtl.forward(100)
trtl.left(90)
trtl.forward(100)
trtl.exitonclick()
我工作正常,但是如果关闭窗口并尝试再次运行相同的代码,则会收到以下错误:
---------------------------------------------------------------------------
Terminator Traceback (most recent call last)
<ipython-input-9-ad2d84897daf> in <module>()
1 import turtle as trtl
2
----> 3 trtl.forward(100)
4 trtl.left(90)
5 trtl.forward(100)
~\Anaconda3\lib\turtle.py in forward(distance)
Terminator:
我尝试了done()
,bye()
和exitonclick()
的多种组合,但我无法使其工作
答案 0 :(得分:0)
这是乌龟documentation的摘录:
如果配置字典中的“ using_IDLE”值是False(默认值),则还要输入mainloop。备注:如果使用带-n开关的IDLE(无子进程),则应在turtle.cfg中将此值设置为True。在这种情况下,IDLE自己的mainloop对于客户端脚本也是活动的。
因此,您可以将using_IDLE = True
添加到turtle.cfg
文件中以解决此问题。这将阻止exitonclick()
进入主循环。
答案 1 :(得分:0)
有点晚了,但是我认为在Jupyter中解决此问题的最佳选择是:
public static <T,K,U> Collector<T,?,Map<K,U>> toMap(Function<? super T,? extends K> keyMapper,
Function<? super T,? extends U> valueMapper)
问题是TK应用程序是在import importlib
import turtle
importlib.reload(turtle)
turtle.forward(1)
turtle.exitonclick()
中创建的,并在您单击窗口中的import turtle
时终止了。此后,当您尝试执行一些乌龟指令时,TK应用程序将终止,然后发生错误。因此,重新加载乌龟程序包即可解决问题