24.6. IDLE

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

IDLE 具有以下Function:

  • 使用tkinter GUI 工具包以 100%纯 Python 编码

  • 跨平台:在 Windows,Unix 和 Mac OS X 上几乎相同

  • Python Shell 窗口(交互式解释器),带有代码 Importing,输出和错误消息的着色

  • 多窗口文本编辑器,具有多个撤消,Python 着色,智能缩进,调用提示,自动完成和其他Function

  • 在任何窗口中搜索,在编辑器窗口中替换,以及搜索多个文件(grep)

  • 具有持久断点,步进以及查看全局和本地名称空间的调试器

  • 配置,浏览器和其他对话框

IDLE 具有两种主要的窗口类型:“Shell”窗口和“编辑器”窗口。可以同时具有多个编辑器窗口。输出窗口(例如用于文件中的“编辑/查找”)是编辑窗口的子类型。它们当前具有与“编辑器”窗口相同的顶部菜单,但是具有不同的默认标题和上下文菜单。

IDLE 的菜单根据当前选择的窗口动态变化。下面记录的每个菜单均指示与之关联的窗口类型。

24.6.1.1. 文件菜单(Shell 和编辑器)

  • New File

    • 创建一个新的文件编辑窗口。
  • Open…

    • 使用“打开”对话框打开现有文件。
  • Recent Files

    • 打开最近的文件列表。单击一个将其打开。
  • Open Module…

    • 打开一个现有的模块(搜索 sys.path)。
  • Class Browser

    • 以树结构显示当前编辑器文件中的函数,类和方法。在 Shell 中,首先打开一个模块。
  • Path Browser

    • 以树形结构显示 sys.path 目录,模块,函数,类和方法。
  • Save

    • 将当前窗口保存到关联的文件(如果有)。自从打开或上次保存以来已更改的窗口在窗口标题前后带有*。如果没有关联的文件,请另存为。
  • Save As…

    • 使用“另存为”对话框保存当前窗口。保存的文件将成为该窗口的新关联文件。
  • 另存为...

    • 将当前窗口保存到其他文件,而不更改关联的文件。
  • Print Window

    • 将当前窗口打印到默认打印机。
  • Close

    • 关闭当前窗口(如果未保存,请保存)。
  • Exit

    • 关闭所有窗口并退出 IDLE(询问是否保存未保存的窗口)。

24.6.1.2. 编辑菜单(Shell 和编辑器)

  • Undo

    • 撤消对当前窗口的最后更改。最多可以撤消 1000 个更改。
  • Redo

    • 重做上次撤消的更改到当前窗口。
  • Cut

    • 将选择内容复制到系统范围的剪贴板中;然后删除选择。
  • Copy

    • 将所选内容复制到系统范围的剪贴板中。
  • Paste

    • 将系统范围剪贴板的内容插入当前窗口。

剪贴板Function在上下文菜单中也可用。

  • Select All

    • 选择当前窗口的全部内容。
  • Find…

    • 打开带有许多选项的搜索对话框
  • Find Again

    • 重复上一次搜索(如果有)。
  • Find Selection

    • 搜索当前选择的字符串(如果有)。
  • 在文件中查找…

    • 打开文件搜索对话框。将结果放入新的输出窗口。
  • Replace…

    • 打开搜索和替换对话框。
  • 前往线

    • 将光标移动到请求的行号,并使该行可见。
  • Show Completions

    • 打开一个可滚动列表,允许选择关键字和属性。请参见下面的提示部分中的完成。
  • Expand Word

    • 展开您键入的前缀以匹配同一窗口中的完整单词;重复以获得不同的扩展。
  • 显示通话提示

    • 在函数的右括号后,打开一个带有函数参数提示的小窗口。
  • 显示周边

    • 突出显示周围的括号。

24.6.1.3. 格式菜单(仅编辑器窗口)

  • Indent Region

    • 将选定的行右移缩进宽度(默认为 4 个空格)。
  • Dedent Region

    • 将选定的行向左移动缩进宽度(默认为 4 个空格)。
  • Comments 掉区域

    • 在所选行的前面插入##。
  • Uncomment Region

    • 从所选行中删除开头的#或##。
  • Tabify Region

    • 前导空格变成制表符。 (注意:我们建议使用 4 个空格来缩进 Python 代码.)
  • Untabify Region

    • 将* all *制表符转换为正确的空格数。
  • Toggle Tabs

    • 打开一个对话框,在缩进空格和制表符之间切换。
  • 新压痕宽度

    • 打开一个对话框以更改缩进宽度。 Python 社区接受的默认值为 4 个空格。
  • Format Paragraph

    • 在 Comments 块或多行字符串或字符串中的选定行中,重新格式化当前以空行分隔的段落。段落中的所有行的格式都将少于 N 列,其中 N 默认为 72.
  • 带尾空白

    • 删除行的最后一个非空格字符之后的所有空格字符。

24.6.1.4. 运行菜单(仅编辑器窗口)

  • Python Shell

    • 打开或唤醒 Python Shell 窗口。
  • Check Module

    • 检查“编辑器”窗口中当前打开的模块的语法。如果尚未保存模块,则 IDLE 会提示用户保存或自动保存,如在“空闲设置”对话框的“常规”选项卡中选择的那样。如果存在语法错误,则在“编辑器”窗口中指示大概位置。
  • Run Module

    • 检查模块(上方)。如果没有错误,请重新启动 Shell 以清理环境,然后执行模块。输出显示在“Shell”窗口中。请注意,输出需要使用printwrite。执行完成后,命令行 Management 程序将保留焦点并显示提示。在这一点上,可以交互地探索执行的结果。这类似于在命令行使用python -i file执行文件。

24.6.1.5. Shell 菜单(仅 Shell 窗口)

  • 查看最近重启

    • 将 Shell 窗口滚动到上一次 Shell 重新启动。
  • Restart Shell

    • 重新启动 Shell 以清洁环境。
  • Interrupt Execution

    • 停止正在运行的程序。

24.6.1.6. 调试菜单(仅 Shell 窗口)

  • 转到文件/行

    • 查看当前行。使用光标,并在上方显示文件名和行号。如果找到该文件,请打开该文件(如果尚未打开)并显示该行。使用它来查看异常回溯中引用的源代码行和“在文件中查找”找到的行。在“Shell”窗口和“输出”窗口的上下文菜单中也可用。
  • Debugger (toggle)

    • 激活后,在命令行 Management 程序中 Importing 或从编辑器运行的代码将在调试器下运行。在编辑器中,可以使用上下文菜单设置断点。此Function仍不完整,有些实验。
  • Stack Viewer

    • 在树小部件中显示对最后一个异常的堆栈 traceback,可以访问本地和全局。
  • 自动打开堆栈查看器

    • 在未处理的异常上切换自动打开堆栈查看器。

24.6.1.7. 选项菜单(Shell 和编辑器)

  • Configure IDLE

    • 打开配置对话框并更改以下各项的首选项:字体,缩进,键绑定,文本颜色主题,启动窗口和大小,其他帮助源以及 extensions(请参见下文)。在 OS X 上,pass在应用程序菜单中选择“首选项”来打开配置对话框。要将新的内置颜色主题(IDLE 深色)与较旧的 IDLE 一起使用,请将其另存为新的自定义主题。

非默认用户设置保存在用户主目录中的.idlerc 目录中。pass编辑或删除.idlerc 中的一个或多个文件,可以解决由错误的用户配置文件引起的问题。

  • 代码上下文(切换)(仅编辑器窗口)

    • 打开编辑窗口顶部的窗格,该窗格显示已滚动到窗口顶部上方的代码的块上下文。

24.6.1.8. 窗口菜单(Shell 和编辑器)

  • Zoom Height

    • 在正常大小和最大高度之间切换窗口。初始大小默认为 40 行乘 80 个字符,除非在“配置 IDLE”对话框的“常规”选项卡上进行了更改。

该菜单的其余部分列出了所有打开的窗口的名称。选择一个将其带到前台(必要时对其进行去符号化)。

24.6.1.9. 帮助菜单(Shell 和编辑器)

  • About IDLE

    • 显示版本,版权,许可证,Integration 等。
  • IDLE Help

    • 显示 IDLE 的帮助文件,其中详细介绍了菜单选项,基本编辑和导航以及其他提示。
  • Python Docs

    • 访问本地 Python 文档(如果已安装),或启动 Web 浏览器并打开显示最新 Python 文档的 docs.python.org。
  • Turtle Demo

    • 使用示例 python 代码和 turtle 绘图运行 turtledemo 模块。

可以在“常规”选项卡下的“配置 IDLE”对话框中添加其他帮助源。

24.6.1.10. 上下文菜单

pass右键单击窗口(在 OS X 上按住 Control 键并单击)来打开上下文菜单。上下文菜单在“编辑”菜单上也具有标准剪贴板Function。

  • Cut

    • 将选择内容复制到系统范围的剪贴板中;然后删除选择。
  • Copy

    • 将所选内容复制到系统范围的剪贴板中。
  • Paste

    • 将系统范围剪贴板的内容插入当前窗口。

编辑器窗口还具有断点Function。设置了断点的行会特别标记。断点仅在调试器下运行时才有效。文件的断点保存在用户的.idlerc 目录中。

  • Set Breakpoint

    • 在当前行上设置一个断点。
  • Clear Breakpoint

    • 清除该行上的断点。

Shell 和输出窗口具有以下内容。

  • 转到文件/行

    • 与“调试”菜单中的相同。

24.6.2. 编辑和导航

在本节中,“ C”表示 Windows 和 Unix 上的 Control 键以及 Mac OSX 上的 Command 键。

  • 退格键删除到左侧; Del 删除到右边

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

  • 方向键和向上翻页/向下翻页

  • C-LeftArrow 和 C-RightArrow pass Literals 移动

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

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

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

Note

  • C-行首

  • C-e 行尾

  • C-k 杀死线(但不放在剪贴板中)

  • 插入点周围的 C-l 中心窗口

  • C-b 后退一个字符而不删除(通常您也可以使用光标键)

  • C-f 向前移动一个字符而不删除(通常您也可以使用光标键)

  • C-p 上移一行(通常您也可以使用光标键)

  • C-d 删除下一个字符

标准的键盘绑定(例如 C-c 复制和 C-v 粘贴)可能有效。在“配置 IDLE”对话框中选择键绑定。

24.6.2.1. 自动缩进

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

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

24.6.2.2. Completions

为内置的和用户定义的函数,类和类的属性提供了补全。还提供了文件名的补全。

AutoCompleteWindow(ACW)将在“。”之后的 sched 义延迟(默认为两秒)后打开。或(在字符串中)Importingos.sep。如果在这些字符之一(加上零个或多个其他字符)之后键入标签,则如果找到可能的延续,则 ACW 将立即打开。

如果 Importing 的字符只有一个可能的补全,则制表符将提供该补全,而无需打开 ACW。

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

如果键入字符串,则 ACW 选择将跳到与这些字符最匹配的条目。Importing 选项卡将导致在编辑器窗口或命令行 Management 程序中 Importing 最长的明确匹配项。连续的两个选项卡将提供当前的 ACW 选择,将返回或双击。光标键,上/下翻页,鼠标选择和滚轮均在 ACW 上操作。

可以pass在“。”之后键入隐藏名称的开头来访问“隐藏”属性,例如'_'。这允许访问设置了__all__的模块或类专用属性。

完成和“扩展单词”Function可以节省大量 Importing!

当前的完成仅限于名称空间中的完成。在“编辑器”窗口中,找不到不是pass__main__sys.modules的名称。对导入运行模块一次,以纠正这种情况。请注意,IDLE 本身在 sys.modules 中放置了很多模块,默认情况下可以找到很多模块,例如重新模块。

如果您不希望 ACW 突然弹出,只需延长延迟时间或禁用扩展即可。

24.6.2.3. Calltips

键入一种类型时(在* accessible *函数的名称之后.名称表达式可能包含点和下标.将一直保留该 Calltip,直到单击它,将光标移出参数区域或),才会显示该 Calltip。当光标位于定义的自变量部分时,菜单或快捷方式将显示一个调用提示。

调用提示由函数签名和文档字符串的第一行组成。对于没有可访问签名的内置插件,calltip 包含第五行或第一行空白的所有行。这些细节可能会改变。

“可访问”Function的集合取决于自上次重启以来已将哪些模块导入到用户进程中,包括由 Idle 本身导入的模块以及已运行的定义。

例如,重新启动命令行 Management 程序,然后 Importingitertools.count(。出现提示,是因为 Idle 将 itertools 导入用户进程供自己使用。 (这可能会更改.)Importingturtle.write(,则什么也不会出现。空闲不导入turtle。菜单或快捷方式也不起作用。Importingimport turtle,然后turtle.write(将起作用。

在编辑器中,导入语句在运行该文件之前不起作用。在顶部编写了 import 语句后,可能要运行文件,或者在编辑之前立即运行现有文件。

24.6.2.4. Python Shell 窗口

  • C-c break执行命令

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

  • Alt-/(扩展词)也有助于减少 typing

Command history

  • Alt-p 检索与您键入的内容匹配的先前命令。在 OS X 上,使用 C-p。

    • Alt-n 检索下一个。在 OS X 上使用 C-n。

    • 在上一条命令检索到该命令时返回

24.6.2.5. Literals 颜色

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

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

24.6.3. 启动和代码执行

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

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

24.6.3.1. 命令行用法

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 combinations 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)

如果有参数:

  • 如果使用--cr,则所有参数都放在sys.argv[1:...]中,并且sys.argv[0]设置为'''-c''-r'。即使是“选项”对话框中的默认设置,也不会打开任何编辑器窗口。

  • 否则,参数是打开供编辑的文件,并且sys.argv反映了传递给 IDLE 本身的参数。

24.6.3.2. 空闲控制台的差异

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

IDLE 还将sys.stdinsys.stdoutsys.stderr替换为从 Shell 窗口获取 Importing 并将输出发送到 Shell 窗口的对象。当该窗口具有焦点时,它将控制键盘和屏幕。这通常是透明的,但是直接访问键盘和屏幕的Function将不起作用。如果使用reload(sys)重置sys,则 IDLE 的更改将丢失,并且inputraw_inputprint之类的东西将无法正常工作。

使用 IDLE 的 Shell,您可以 Importing,编辑和调用完整的语句。某些控制台一次只能使用一条物理行路。 IDLE 使用exec来运行每个语句。结果,总是为每个语句定义'__builtins__'

24.6.3.3. 在没有子流程的情况下运行

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

如果try构建套接字连接失败,则 Idle 将通知您。此类故障有时是短暂的,但如果持续存在,则问题可能是防火墙阻止了连接或特定系统的配置错误。在问题解决之前,您可以使用-n 命令行开关运行 Idle。

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

自 3.4 版起不推荐使用。

24.6.4. 帮助和偏好

24.6.4.1. 其他帮助资源

IDLE 包含一个名为“ Python Docs”的帮助菜单项,它将打开 docs.python.org 上的大量帮助资源,包括教程。可以使用“配置 IDLE”对话框随时在帮助菜单中添加或删除选定的 URL。有关更多信息,请参见 IDLE 帮助菜单中的 IDLE 帮助选项。

24.6.4.2. 设定偏好

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

24.6.4.3. Extensions

IDLE 包含扩展Function。扩展的首选项可以使用“配置扩展”进行更改。有关更多信息,请参见 idlelib 目录中 config-extensions.def 的开头。当前默认 extensions 是:

  • FormatParagraph

  • AutoExpand

  • ZoomHeight

  • ScriptBinding

  • CallTips

  • ParenMatch

  • AutoComplete

  • CodeContext

  • RstripExtension