#解决python蟒蛇绘制实例中在非IDLE环境下运行报错的一种方法 jupyter notebook环境
我在学习python蟒蛇绘制实例时,在使用jupyter notebook调用turtle库进行绘制时发现,代码只能运行一次,在关闭turtle窗口时python的程序会崩溃jupyter也会报错,在网上查找相关问题时发现了调用mainloop函数解决问题的方法,但在仔细阅读该解决方法时发现问题在turtle的说明文档中关于mainloop函数的说明如下
Must NOT be used if a script is run from within IDLE in -n mode (No subprocess) - for interactive use of turtle graphics.我对该段文字的理解和原博客作者的理解不一样,我认为官方文档的意思是一定不要在非IDLE环境中调用这个函数。于是在进一步的查询下发现另一解决方法,在一知乎回答中通过观察源代码发现关闭窗口报错是一个值设定为false的结果,该回答给出两种解决方法,一个是修改turtle的源代码,另一个是加一行命令将该值重设为true,我才用第二种方法对代码进行了改造,成功运行且多次操作无问题。
相关代码如下。
#PythonDraw.py
import turtle
turtle.TurtleScreen._RUNNING = True
turtle.setup(650, 350, 200, 200)
turtle.penup()
turtle.fd(-250)
turtle.pendown()
turtle.pensize(25)
turtle.pencolor("purple")
turtle.seth(-40)
for i in range(4):
turtle.circle(40, 80)
turtle.circle(-40, 80)
turtle.circle(40, 80/2)
turtl