Python Turtle模块运行报Terminator错误,窗口无法关闭如何解决?
Python Turtle模块首次运行抛出Terminator错误的解决方案
我在学习Python OOP(面向对象编程)及turtle模块时遇到以下问题:两段代码首次运行均抛出Terminator错误,turtle图形窗口无法关闭,但重新运行程序就能得到预期输出。
代码示例与报错信息
第一段代码
# 实际运行时已导入:from turtle import Turtle,Screen timmy = Turtle() print(timmy) timmy.shape("turtle") timmy.color("blue")
第二段代码
from turtle import Turtle,Screen timmy = Turtle() print(timmy) timmy.shape("turtle") timmy.color("blue") timmy.forward(100) my_screen = Screen() my_screen.bgcolor("coral") my_screen.exitonclick()
报错信息
Output exceeds the size limit. Open the full output data in a text editor --------------------------------------------------------------------------- Terminator Traceback (most recent call last) Untitled-1.ipynb Cell 1 in <cell line: 4>() 1 from turtle import Turtle,Screen ----> 4 timmy = Turtle() 5 print(timmy) 6 timmy.shape("turtle") File ~/anaconda3/lib/python3.9/turtle.py:3815, in Turtle.__init__(self, shape, undobuffersize, visible) 3813 if Turtle._screen is None: 3814 Turtle._screen = Screen() -> 3815 RawTurtle.__init__(self, Turtle._screen, 3816 shape=shape, 3817 undobuffersize=undobuffersize, 3818 visible=visible) File ~/anaconda3/lib/python3.9/turtle.py:2558, in RawTurtle.__init__(self, canvas, shape, undobuffersize, visible) 2556 self._undobuffersize = undobuffersize 2557 self.undobuffer = Tbuffer(undobuffersize) -> 2558 self._update() File ~/anaconda3/lib/python3.9/turtle.py:2661, in RawTurtle._update(self) 2659 return 2660 elif screen._tracing == 1: -> 2661 self._update_data() ... -> 1293 raise Terminator 1294 if self._tracing > 0: 1295 self._updatecounter += 1 Terminator:
问题原因
这个问题主要出现在Jupyter Notebook这类交互式环境中:首次运行时,turtle自动创建Screen对象的过程中,图形资源加载与环境初始化发生冲突,导致窗口进程异常,触发Terminator异常。重新运行时,残留的图形上下文已完成初始化,因此能正常工作。
解决方案
1. 显式提前初始化Screen对象
在创建Turtle实例前手动初始化Screen,避免自动初始化的冲突:
from turtle import Turtle, Screen # 先初始化屏幕 my_screen = Screen() timmy = Turtle() print(timmy) timmy.shape("turtle") timmy.color("blue") timmy.forward(100) my_screen.bgcolor("coral") my_screen.exitonclick()
2. 清理残留进程
如果首次运行后窗口无法关闭,手动终止Python图形进程:
- Linux/macOS:终端执行
pkill Python - Windows:打开任务管理器,结束所有Python相关进程
清理后再重新运行程序,避免残留进程干扰后续初始化。
3. 使用脚本模式运行
将代码保存为.py文件,用命令行直接运行(python your_script.py)。原生脚本环境对turtle的图形支持更稳定,能避免交互式环境的初始化冲突问题。
注意事项
- 不要重复初始化Screen对象,多次创建会导致资源冲突;
- 始终使用
exitonclick()或bye()方法正常关闭窗口,避免残留进程积累。
内容的提问来源于stack exchange,提问作者Sage
相关产品推荐
相关产品推荐

