25.5. IDLE

源代码: Lib/idlelib/

IDLE 是 Python 的集成开发和学习环境。

IDLE 具有以下特性:

  • 使用 tkinter GUI 工具包,100% 纯 Python 代码编写
  • 跨平台:在 Windows,Unix 和 Mac OS X 上工作大致相同
  • Python shell 窗口(交互式解释器),带有代码输入,输出和错误消息高亮显示
  • 多窗口文本编辑器与多重撤消,Python 代码高亮,智能缩进,调用提示,自动完成和其他功能
  • 在任何窗口中搜索,在编辑器窗口中替换,以及搜索多个文件(grep)
  • 调试器具有持久断点的,步进和查看全局和本地命名空间
  • 配置,浏览器和其他对话框

25.5.2. Editing and navigation

在本节中,'C'指的是Windows和Unix上的Control键,以及Mac OSX上的Command键。

  • Backspace向左删除; Del向右删除

  • C-Backspace 删除左侧字; C-Del删除右侧的字词

  • 箭头键和 / 移动

  • C-LeftArrowC-RightArrow按字移动

  • Home / End转到开始/结束行

  • C-Home / C-End转到开始/结束文件

  • 一些有用的Emacs绑定继承自Tcl / Tk:

    • C-a beginning of line
    • C-e end of line
    • C-k kill line (but doesn’t put it in clipboard)
    • C-l center window around the insertion point
    • C-b go backwards one character without deleting (usually you can also use the cursor key for this)
    • C-f go forward one character without deleting (usually you can also use the cursor key for this)
    • C-p go up one line (usually you can also use the cursor key for this)
    • C-d delete next character

标准按键绑定(如C-c复制和C-v粘贴)可能会正常工作。在“配置IDLE”对话框中选择键绑定。

25.5.2.1. Automatic indentation

在开启语句之后,下一行缩进4个空格(在Python Shell窗口中,一个选项卡)。在某些关键字(break,return等)下一行是扣除。在前导缩进中,Backspace删除最多4个空格(如果有)。Tab插入空格(在Python Shell窗口的一个选项卡中),数量取决于缩进宽度。由于Tcl / Tk限制,当前标签限制为四个空格。

另请参阅编辑菜单中的缩进/缩进区域命令。

25.5.2.2. Completions

为内建和用户定义的类的函数,类和属性提供完成。还为文件名提供了完整性。

在“。”或(在字符串中)键入os.sep之后,AutoCompleteWindow(ACW)将在预定义的延迟(默认值为两秒)后打开。如果在其中一个字符(加上零个或多个其他字符)之后键入一个选项卡,如果找到可能的延续,ACW将立即打开。

如果输入的字符只有一个可能的完成,则Tab将提供该完成,而不打开ACW。

“显示完成”将强制打开完成窗口,默认情况下,C-space将打开完成窗口。在空字符串中,这将包含当前目录中的文件。在空行上,它将包含当前名称空间中的内建和用户定义的函数和类,以及所有导入的模块。如果输入了一些字符,ACW将尝试更具体。

如果输入了字符串,ACW选择将跳转到与这些字符最匹配的条目。输入tab将导致在编辑器窗口或命令行管理程序中输入最长的非歧义匹配。一行中的两个tab将提供当前ACW选择,将返回或双击。光标键,Page Up / Down,鼠标选择和滚轮都在ACW上操作。

“隐藏”属性可以通过在“。”之后键入隐藏名称的开头来访问。'_'。这允许访问设置了__all__的模块,或者访问类私有属性的模块。

完成和“Expand Word”工具可以节省大量的输入!

完成目前仅限于命名空间中的完成。将不能找到不通过__main__sys.modules的编辑器窗口中的名称。使用导入运行模块一次,以纠正这种情况。注意,IDLE本身在sys.modules中放置了很多模块,所以默认情况下可以找到很多模块。re模块。

如果你不喜欢ACW弹出未被禁止,只需延长时间或禁用扩展。

25.5.2.3. Calltips

当在可访问函数的名称后面键入()时,会显示一个调用提示。名称表达式可以包括点和下标。调用提示保持,直到它被点击,光标移出参数区域,或)被键入。当光标位于定义的参数部分时,菜单或快捷方式将显示一个调用提示。

calltip由函数声明和docstring的第一行组成。对于没有可访问声明的内置,调用提示包括第五行或第一个空白行上的所有行。这些详细信息可能会更改。

可访问函数的集合取决于导入到用户进程中的模块,包括Idle自身导入的模块以及自上次重新启动以来运行的定义。

例如,重新启动Shell并输入itertools.count(出现调用提示,因为Idle将itertools导入用户进程以供自己使用。(这可能改变。)输入turtle.write(),不显示任何内容。空闲不导入海龟。菜单或快捷方式也什么也不做。输入import turtle,然后输入turtle.write(

在编辑器中,import语句在运行文件之前没有任何效果。可能想在顶部写入import语句后运行文件,或在编辑之前立即运行现有文件。

25.5.2.4. Python Shell window

  • C-c中断执行命令

  • C-d发送文件结束;如果在>>>提示处键入,则关闭窗口

  • Alt-/(展开单词)也有助于减少打字

    命令历史

    • Alt-p检索与您键入的命令匹配的上一个命令。在OS X上使用C-p
    • Alt-n检索下一个。在OS X上使用C-n
    • Return,而任何上一个命令检索该命令

25.5.2.5. Text colors

空白默认为白色文本上的黑色,但颜色具有特殊含义的文本。对于shell,这些是shell输出,shell错误,用户输出和用户错误。对于Python代码,在shell提示符或编辑器中,这些是关键字,内置类和函数名,classdef后面的名称,字符串和注释。对于任何文本窗口,这些是光标(如果存在),找到的文本(如果可能)和选定的文本。

文本着色在背景中完成,所以未着色的文本偶尔可见。要更改颜色方案,请使用“配置IDLE”对话框的“突出显示”选项卡。编辑器中调试器断点行的标记和弹出窗口和对话框中的文本不是用户可配置的。

25.5.3. Startup and code execution

使用-s选项启动时,IDLE将执行环境变量 IDLESTARTUP PYTHONSTARTUPIDLE首先检查IDLESTARTUP;如果出现IDLESTARTUP,则引用的文件将运行。如果IDLESTARTUP不存在,IDLE将检查PYTHONSTARTUP这些环境变量引用的文件是存储从IDLE shell中频繁使用的函数或执行import语句以导入公共模块的便利位置。

此外,Tk还会加载启动文件(如果存在)。注意,无条件地加载Tk文件。此附加文件为.Idle.py,并在用户的主目录中找到。此文件中的语句将在Tk命名空间中执行,因此此文件对于从IDLE的Python shell导入要使用的函数不是有用的。

25.5.3.1. Command line usage

idle.py [-c command] [-d] [-e] [-h] [-i] [-r file] [-s] [-t title] [-] [arg] ...

-c command  run command in the shell window
-d          enable debugger and open shell window
-e          open editor window
-h          print help message with legal combinatios and exit
-i          open shell window
-r file     run file in shell window
-s          run $IDLESTARTUP or $PYTHONSTARTUP first, in shell window
-t title    set title of shell window
-           run stdin in shell (- must be last option before args)

如果有参数:

  • If -, -c, or r is used, all arguments are placed in sys.argv[1:...] and sys.argv[0] is set to '', '-c', or '-r'. 不打开编辑器窗口,即使它是“选项”对话框中的默认设置。
  • 否则,参数是打开以供编辑的文件,而sys.argv反映传递给IDLE本身的参数。

25.5.3.2. IDLE-console differences

尽可能地,使用IDLE执行Python代码的结果与在控制台窗口中执行相同的代码相同。但是,不同的接口和操作偶尔会影响可见的结果。对于实例,sys.modules以更多条目开头。

IDLE还用从Shell窗口获取输入和将输出发送到Shell窗口的对象替换sys.stdinsys.stdoutsys.stderr当这个窗口有焦点时,它控制键盘和屏幕。这通常是透明的,但直接访问键盘和屏幕的功能将不起作用。If sys is reset with importlib.reload(sys), IDLE’s changes are lost and things li ke input, raw_input, and print will not work correctly.

使用IDLE的Shell,一个进入,编辑,并召回完整的语句。有些控制台一次只能使用一条物理线路。

25.5.3.3. Running without a subprocess

默认情况下,IDLE通过套接字在单独的子进程中执行用户代码,该套接字使用内部回送接口。此连接不是外部可见的,并且没有数据发送到Internet或从Internet接收。如果防火墙软件反正,你可以忽略它。

如果尝试使套接字连接失败,Idle将通知您。这种故障有时是暂时的,但如果是持久的,问题可能是防火墙阻塞连接或特定系统的配置错误。直到问题解决,可以使用-n命令行开关运行Idle。

如果IDLE使用-n命令行开关启动,它将在单个进程中运行,并且不会创建运行RPC Python执行服务器的子进程。如果Python无法在您的平台上创建子进程或RPC套接字接口,这将非常有用。但是,在此模式下,用户代码不与IDLE本身隔离。此外,当选择运行/运行模块(F5)时,不会重新启动环境。如果您的代码已被修改,您必须重新载入()受影响的模块,并重新导入任何特定项目(例如从foo import baz)如果更改生效。由于这些原因,如果可能,最好使用默认子进程运行IDLE。

自3.4版起已弃用。

25.5.4. Help and preferences

25.5.4.1. Additional help sources

IDLE包括一个称为“Python文档”的帮助菜单条目,将打开包含教程的广泛帮助源,可从docs.python.org获取。所选的URL可以随时使用“配置IDLE”对话框从帮助菜单中添加或删除。有关详细信息,请参阅IDLE帮助菜单中的IDLE帮助选项。

25.5.4.2. Setting preferences

可以通过选项菜单上的配置IDLE更改字体首选项,突出显示,键和常规首选项。键可以由用户定义; IDLE附带四个内置的密钥集。此外,用户可以在“配置IDLE”对话框的“键”选项卡下创建自定义键集。

25.5.4.3. Extensions

IDLE包含扩展设施。扩展的扩展可以使用配置扩展进行更改。有关更多信息,请参阅idlelib目录中config-extensions.def的开头。默认扩展名当前为:

  • FormatParagraph
  • 自动展开
  • ZoomHeight
  • 脚本绑定
  • 呼叫提示
  • ParenMatch
  • 自动完成
  • CodeContext
  • RstripExtension