无法在Jupyter笔记本上运行Turtle(Turtle图形窗口无响应)

时间:2019-09-08 06:45:04

标签: python jupyter-notebook turtle-graphics

第一个问题

当我偶然发现乌龟模块时,我正在从ThinkPython 2e第4章案例研究:接口设计中做一个例子。

我使用jupyter笔记本作为IDE进行锻炼。这是代码

import turtle
bob = turtle.Turtle()

当我运行上面的代码时,代码被选中,但是Python Turtle Graphic无法以响应状态运行

这样做也是一样,尽管当我运行以下命令时,内核在声明错误之前会忙一会儿

import turtle
bob = turtle.Turtle()
print(bob)
turtle.mainloop()

什么原因导致此错误?

第二个问题

然后我尝试了下一个代码

bob.fd(100)

它只是冻结,所以我不得不中断代码,这是错误

---------------------------------------------------------------------------
KeyboardInterrupt                         Traceback (most recent call last)
<ipython-input-7-a3ce06f254ac> in <module>
      2 bob = turtle.Turtle()
      3 print(bob)
----> 4 turtle.mainloop()

~\Anaconda3\lib\turtle.py in mainloop()

~\Anaconda3\lib\turtle.py in mainloop(self)
    811 
    812         """
--> 813         TK.mainloop()
    814 
    815     def textinput(self, title, prompt):

~\Anaconda3\lib\tkinter\__init__.py in mainloop(n)
    558 def mainloop(n=0):
    559     """Run the main loop of Tcl."""
--> 560     _default_root.tk.mainloop(n)
    561 
    562 getint = int

KeyboardInterrupt: 

我尝试过的

我尝试引用此线程 Turtle does not run more than once in jupyter notebook
最终使我回到这里

  

https://medium.com/@jiyuanli93/how-to-make-python-turtle-works-in-jupyter-notebook-6c506b9a973f

或这里

  

https://github.com/gkvoelkl/ipython-turtle-widget

一些信息:当我在Anaconda提示符下运行此

$ jupyter nbextension install --py --symlink --sys-prefix ipyturtle
$ jupyter nbextension enable --py --sys-prefix ipyturtle

它产生了一些问题,但是当我以admin身份运行它们时运行得很好(据说是validating: ok

任何帮助将不胜感激,我已经被这个东西困扰了2.5个小时

1 个答案:

答案 0 :(得分:1)

我和你有同样的问题。

这对我有用。

将以下代码放入三个Jupyter Notebook单元格中:

单元格1

import turtle
bob = turtle.Turtle()
print(bob)

单元2

for i in range(4):
    bob.fd(100)
    bob.lt(90)

单元3

turtle.mainloop()

并一一运行。

像你一样,我是菜鸟,但是我认为正在发生的是代码turtle.mainloop()终止了对象bob或类似的东西。您应该做的是在执行bob.fd(100)之前执行所有turtle.mainloop()之类的动作。有道理吗?