为什么Turtle不能在Linux命令行中工作,而是来自IDLE?

时间:2015-12-01 08:24:33

标签: python linux python-idle turtle-graphics

我参加了一个Python小组会议。在安装了Linux的笔记本电脑上,我使用通常的命令通过终端执行以下代码(来自Teach Your Children Python一书):

import turtle
t = turtle.Pen()
t.speed(0)
turtle.onscreenclick(t.setpos)
  

Python3.4 TurtleDraw.py

它应该打开一个可以输入鼠标光标的窗口。相反,窗口会立即出现并消失。另一个人在他的MacBook上尝试了类似的东西,结果相同。但是,他通过IDLE版本运行相同的代码,它确实按预期工作。

IDLE中是否存在与该Turtle窗口自动集成的内容?我认为如果我希望通过Unix命令行正常运行它可能需要设置环境变量吗?

1 个答案:

答案 0 :(得分:4)

在命令行python xyz.py,告诉Python执行程序,完成后退出并清理。对于turtledraw.py,它会删除乌龟屏幕,如您所见。要保持屏幕可见,您必须防止程序退出。使用-i选项python -i xyz.py选项的一种方法是 [1] -i。这意味着:"当到达程序结束时,切换到交互模式'而不是退出"。一个用途是通过检查全局变量的值来进行调试。另一种是与图形屏幕交互。无论是否,本书应该告诉您在从控制台运行时使用xyz.py

当您在IDLE中编辑python -i xyz.py并运行它时,IDLE会模拟xyz.py:在运行input()后,它会将打开进行内省或交互。< / p>

[1] 防止退出的另一种方法是在程序结束时放置-i语句,但这可能不适用于GUI程序。

编辑:我测试了TestDraw.py适用于Win3上的response=JSON.parse(xmlhttp.responseText) len=response.length; console.log(len); for(i=0;i<len; i++){ console.log(i); alert(response[i].IPO) //COCView.lb01Select.appendChild(new DOMtag('option'{'id':response[i].CO_HDR_ID,'innerHTML':response[i].ONR})); } } 和Python 3.5.0。