|
|
|
|
|
|
|
|
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
|
|
|
|
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
|
|
|
|
|
|
|
|
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
|
|
|
|
<head>
|
|
|
|
|
<meta http-equiv="X-UA-Compatible" content="IE=Edge" />
|
|
|
|
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
|
|
|
|
<title>IDLE — Python 3.8.0a0 documentation</title>
|
|
|
|
|
<link rel="stylesheet" href="../_static/pydoctheme.css" type="text/css" />
|
|
|
|
|
<link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
|
|
|
|
|
|
|
|
|
|
<script type="text/javascript" id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script>
|
|
|
|
|
<script type="text/javascript" src="../_static/jquery.js"></script>
|
|
|
|
|
<script type="text/javascript" src="../_static/underscore.js"></script>
|
|
|
|
|
<script type="text/javascript" src="../_static/doctools.js"></script>
|
|
|
|
|
<script async="async" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
|
|
|
|
|
|
|
|
|
|
<script type="text/javascript" src="../_static/sidebar.js"></script>
|
|
|
|
|
|
|
|
|
|
<link rel="search" type="application/opensearchdescription+xml"
|
|
|
|
|
title="Search within Python 3.8.0a0 documentation"
|
|
|
|
|
href="../_static/opensearch.xml"/>
|
|
|
|
|
<link rel="author" title="About these documents" href="../about.html" />
|
|
|
|
|
<link rel="index" title="Index" href="../genindex.html" />
|
|
|
|
|
<link rel="search" title="Search" href="../search.html" />
|
|
|
|
|
<link rel="copyright" title="Copyright" href="../copyright.html" />
|
|
|
|
|
<link rel="next" title="Other Graphical User Interface Packages" href="othergui.html" />
|
|
|
|
|
<link rel="prev" title="tkinter.scrolledtext — Scrolled Text Widget" href="tkinter.scrolledtext.html" />
|
|
|
|
|
<link rel="canonical" href="https://docs.python.org/3/library/idle.html" />
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<style>
|
|
|
|
|
@media only screen {
|
|
|
|
|
table.full-width-table {
|
|
|
|
|
width: 100%;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
</style>
|
|
|
|
|
|
|
|
|
|
<link rel="shortcut icon" type="image/png" href="../_static/py.png" />
|
|
|
|
|
|
|
|
|
|
<script type="text/javascript" src="../_static/copybutton.js"></script>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
</head><body>
|
|
|
|
|
<div class="related" role="navigation" aria-label="related navigation">
|
|
|
|
|
<h3>Navigation</h3>
|
|
|
|
|
<ul>
|
|
|
|
|
<li class="right" style="margin-right: 10px">
|
|
|
|
|
<a href="../genindex.html" title="General Index"
|
|
|
|
|
accesskey="I">index</a></li>
|
|
|
|
|
<li class="right" >
|
|
|
|
|
<a href="../py-modindex.html" title="Python Module Index"
|
|
|
|
|
>modules</a> |</li>
|
|
|
|
|
<li class="right" >
|
|
|
|
|
<a href="othergui.html" title="Other Graphical User Interface Packages"
|
|
|
|
|
accesskey="N">next</a> |</li>
|
|
|
|
|
<li class="right" >
|
|
|
|
|
<a href="tkinter.scrolledtext.html" title="tkinter.scrolledtext — Scrolled Text Widget"
|
|
|
|
|
accesskey="P">previous</a> |</li>
|
|
|
|
|
|
|
|
|
|
<li><img src="../_static/py.png" alt=""
|
|
|
|
|
style="vertical-align: middle; margin-top: -1px"/></li>
|
|
|
|
|
<li><a href="https://www.python.org/">Python</a> »</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li>
|
|
|
|
|
<a href="../index.html">3.8.0a0 Documentation</a> »
|
|
|
|
|
</li>
|
|
|
|
|
|
|
|
|
|
<li class="nav-item nav-item-1"><a href="index.html" >The Python Standard Library</a> »</li>
|
|
|
|
|
<li class="nav-item nav-item-2"><a href="tk.html" accesskey="U">Graphical User Interfaces with Tk</a> »</li>
|
|
|
|
|
<li class="right">
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<div class="inline-search" style="display: none" role="search">
|
|
|
|
|
<form class="inline-search" action="../search.html" method="get">
|
|
|
|
|
<input placeholder="Quick search" type="text" name="q" />
|
|
|
|
|
<input type="submit" value="Go" />
|
|
|
|
|
<input type="hidden" name="check_keywords" value="yes" />
|
|
|
|
|
<input type="hidden" name="area" value="default" />
|
|
|
|
|
</form>
|
|
|
|
|
</div>
|
|
|
|
|
<script type="text/javascript">$('.inline-search').show(0);</script>
|
|
|
|
|
|
|
|
|
|
|
</li>
|
|
|
|
|
|
|
|
|
|
</ul>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<div class="document">
|
|
|
|
|
<div class="documentwrapper">
|
|
|
|
|
<div class="bodywrapper">
|
|
|
|
|
<div class="body" role="main">
|
|
|
|
|
|
|
|
|
|
<div class="section" id="idle">
|
|
|
|
|
<span id="id1"></span><h1>IDLE<a class="headerlink" href="#idle" title="Permalink to this headline">¶</a></h1>
|
|
|
|
|
<p><strong>Source code:</strong> <a class="reference external" href="https://github.com/python/cpython/tree/master/Lib/idlelib/">Lib/idlelib/</a></p>
|
|
|
|
|
<hr class="docutils" id="index-0" />
|
|
|
|
|
<p>IDLE is Python’s Integrated Development and Learning Environment.</p>
|
|
|
|
|
<p>IDLE has the following features:</p>
|
|
|
|
|
<ul class="simple">
|
|
|
|
|
<li>coded in 100% pure Python, using the <a class="reference internal" href="tkinter.html#module-tkinter" title="tkinter: Interface to Tcl/Tk for graphical user interfaces"><code class="xref py py-mod docutils literal notranslate"><span class="pre">tkinter</span></code></a> GUI toolkit</li>
|
|
|
|
|
<li>cross-platform: works mostly the same on Windows, Unix, and macOS</li>
|
|
|
|
|
<li>Python shell window (interactive interpreter) with colorizing
|
|
|
|
|
of code input, output, and error messages</li>
|
|
|
|
|
<li>multi-window text editor with multiple undo, Python colorizing,
|
|
|
|
|
smart indent, call tips, auto completion, and other features</li>
|
|
|
|
|
<li>search within any window, replace within editor windows, and search
|
|
|
|
|
through multiple files (grep)</li>
|
|
|
|
|
<li>debugger with persistent breakpoints, stepping, and viewing
|
|
|
|
|
of global and local namespaces</li>
|
|
|
|
|
<li>configuration, browsers, and other dialogs</li>
|
|
|
|
|
</ul>
|
|
|
|
|
<div class="section" id="menus">
|
|
|
|
|
<h2>Menus<a class="headerlink" href="#menus" title="Permalink to this headline">¶</a></h2>
|
|
|
|
|
<p>IDLE has two main window types, the Shell window and the Editor window. It is
|
|
|
|
|
possible to have multiple editor windows simultaneously. On Windows and
|
|
|
|
|
Linux, each has its own top menu. Each menu documented below indicates
|
|
|
|
|
which window type it is associated with.</p>
|
|
|
|
|
<p>Output windows, such as used for Edit => Find in Files, are a subtype of editor
|
|
|
|
|
window. They currently have the same top menu but a different
|
|
|
|
|
default title and context menu.</p>
|
|
|
|
|
<p>On macOS, there is one application menu. It dynamically changes according
|
|
|
|
|
to the window currently selected. It has an IDLE menu, and some entries
|
|
|
|
|
described below are moved around to conform to Apple guidlines.</p>
|
|
|
|
|
<div class="section" id="file-menu-shell-and-editor">
|
|
|
|
|
<h3>File menu (Shell and Editor)<a class="headerlink" href="#file-menu-shell-and-editor" title="Permalink to this headline">¶</a></h3>
|
|
|
|
|
<dl class="docutils">
|
|
|
|
|
<dt>New File</dt>
|
|
|
|
|
<dd>Create a new file editing window.</dd>
|
|
|
|
|
<dt>Open…</dt>
|
|
|
|
|
<dd>Open an existing file with an Open dialog.</dd>
|
|
|
|
|
<dt>Recent Files</dt>
|
|
|
|
|
<dd>Open a list of recent files. Click one to open it.</dd>
|
|
|
|
|
<dt>Open Module…</dt>
|
|
|
|
|
<dd>Open an existing module (searches sys.path).</dd>
|
|
|
|
|
</dl>
|
|
|
|
|
<dl class="docutils" id="index-1">
|
|
|
|
|
<dt>Class Browser</dt>
|
|
|
|
|
<dd>Show functions, classes, and methods in the current Editor file in a
|
|
|
|
|
tree structure. In the shell, open a module first.</dd>
|
|
|
|
|
<dt>Path Browser</dt>
|
|
|
|
|
<dd>Show sys.path directories, modules, functions, classes and methods in a
|
|
|
|
|
tree structure.</dd>
|
|
|
|
|
<dt>Save</dt>
|
|
|
|
|
<dd>Save the current window to the associated file, if there is one. Windows
|
|
|
|
|
that have been changed since being opened or last saved have a * before
|
|
|
|
|
and after the window title. If there is no associated file,
|
|
|
|
|
do Save As instead.</dd>
|
|
|
|
|
<dt>Save As…</dt>
|
|
|
|
|
<dd>Save the current window with a Save As dialog. The file saved becomes the
|
|
|
|
|
new associated file for the window.</dd>
|
|
|
|
|
<dt>Save Copy As…</dt>
|
|
|
|
|
<dd>Save the current window to different file without changing the associated
|
|
|
|
|
file.</dd>
|
|
|
|
|
<dt>Print Window</dt>
|
|
|
|
|
<dd>Print the current window to the default printer.</dd>
|
|
|
|
|
<dt>Close</dt>
|
|
|
|
|
<dd>Close the current window (ask to save if unsaved).</dd>
|
|
|
|
|
<dt>Exit</dt>
|
|
|
|
|
<dd>Close all windows and quit IDLE (ask to save unsaved windows).</dd>
|
|
|
|
|
</dl>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="section" id="edit-menu-shell-and-editor">
|
|
|
|
|
<h3>Edit menu (Shell and Editor)<a class="headerlink" href="#edit-menu-shell-and-editor" title="Permalink to this headline">¶</a></h3>
|
|
|
|
|
<dl class="docutils">
|
|
|
|
|
<dt>Undo</dt>
|
|
|
|
|
<dd>Undo the last change to the current window. A maximum of 1000 changes may
|
|
|
|
|
be undone.</dd>
|
|
|
|
|
<dt>Redo</dt>
|
|
|
|
|
<dd>Redo the last undone change to the current window.</dd>
|
|
|
|
|
<dt>Cut</dt>
|
|
|
|
|
<dd>Copy selection into the system-wide clipboard; then delete the selection.</dd>
|
|
|
|
|
<dt>Copy</dt>
|
|
|
|
|
<dd>Copy selection into the system-wide clipboard.</dd>
|
|
|
|
|
<dt>Paste</dt>
|
|
|
|
|
<dd>Insert contents of the system-wide clipboard into the current window.</dd>
|
|
|
|
|
</dl>
|
|
|
|
|
<p>The clipboard functions are also available in context menus.</p>
|
|
|
|
|
<dl class="docutils">
|
|
|
|
|
<dt>Select All</dt>
|
|
|
|
|
<dd>Select the entire contents of the current window.</dd>
|
|
|
|
|
<dt>Find…</dt>
|
|
|
|
|
<dd>Open a search dialog with many options</dd>
|
|
|
|
|
<dt>Find Again</dt>
|
|
|
|
|
<dd>Repeat the last search, if there is one.</dd>
|
|
|
|
|
<dt>Find Selection</dt>
|
|
|
|
|
<dd>Search for the currently selected string, if there is one.</dd>
|
|
|
|
|
<dt>Find in Files…</dt>
|
|
|
|
|
<dd>Open a file search dialog. Put results in a new output window.</dd>
|
|
|
|
|
<dt>Replace…</dt>
|
|
|
|
|
<dd>Open a search-and-replace dialog.</dd>
|
|
|
|
|
<dt>Go to Line</dt>
|
|
|
|
|
<dd>Move cursor to the line number requested and make that line visible.</dd>
|
|
|
|
|
<dt>Show Completions</dt>
|
|
|
|
|
<dd>Open a scrollable list allowing selection of keywords and attributes. See
|
|
|
|
|
Completions in the Tips sections below.</dd>
|
|
|
|
|
<dt>Expand Word</dt>
|
|
|
|
|
<dd>Expand a prefix you have typed to match a full word in the same window;
|
|
|
|
|
repeat to get a different expansion.</dd>
|
|
|
|
|
<dt>Show call tip</dt>
|
|
|
|
|
<dd>After an unclosed parenthesis for a function, open a small window with
|
|
|
|
|
function parameter hints.</dd>
|
|
|
|
|
<dt>Show surrounding parens</dt>
|
|
|
|
|
<dd>Highlight the surrounding parenthesis.</dd>
|
|
|
|
|
</dl>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="section" id="format-menu-editor-window-only">
|
|
|
|
|
<h3>Format menu (Editor window only)<a class="headerlink" href="#format-menu-editor-window-only" title="Permalink to this headline">¶</a></h3>
|
|
|
|
|
<dl class="docutils">
|
|
|
|
|
<dt>Indent Region</dt>
|
|
|
|
|
<dd>Shift selected lines right by the indent width (default 4 spaces).</dd>
|
|
|
|
|
<dt>Dedent Region</dt>
|
|
|
|
|
<dd>Shift selected lines left by the indent width (default 4 spaces).</dd>
|
|
|
|
|
<dt>Comment Out Region</dt>
|
|
|
|
|
<dd>Insert ## in front of selected lines.</dd>
|
|
|
|
|
<dt>Uncomment Region</dt>
|
|
|
|
|
<dd>Remove leading # or ## from selected lines.</dd>
|
|
|
|
|
<dt>Tabify Region</dt>
|
|
|
|
|
<dd>Turn <em>leading</em> stretches of spaces into tabs. (Note: We recommend using
|
|
|
|
|
4 space blocks to indent Python code.)</dd>
|
|
|
|
|
<dt>Untabify Region</dt>
|
|
|
|
|
<dd>Turn <em>all</em> tabs into the correct number of spaces.</dd>
|
|
|
|
|
<dt>Toggle Tabs</dt>
|
|
|
|
|
<dd>Open a dialog to switch between indenting with spaces and tabs.</dd>
|
|
|
|
|
<dt>New Indent Width</dt>
|
|
|
|
|
<dd>Open a dialog to change indent width. The accepted default by the Python
|
|
|
|
|
community is 4 spaces.</dd>
|
|
|
|
|
<dt>Format Paragraph</dt>
|
|
|
|
|
<dd>Reformat the current blank-line-delimited paragraph in comment block or
|
|
|
|
|
multiline string or selected line in a string. All lines in the
|
|
|
|
|
paragraph will be formatted to less than N columns, where N defaults to 72.</dd>
|
|
|
|
|
<dt>Strip trailing whitespace</dt>
|
|
|
|
|
<dd>Remove trailing space and other whitespace characters after the last
|
|
|
|
|
non-whitespace character of a line by applying str.rstrip to each line,
|
|
|
|
|
including lines within multiline strings.</dd>
|
|
|
|
|
</dl>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="section" id="run-menu-editor-window-only">
|
|
|
|
|
<span id="index-2"></span><h3>Run menu (Editor window only)<a class="headerlink" href="#run-menu-editor-window-only" title="Permalink to this headline">¶</a></h3>
|
|
|
|
|
<dl class="docutils">
|
|
|
|
|
<dt>Python Shell</dt>
|
|
|
|
|
<dd>Open or wake up the Python Shell window.</dd>
|
|
|
|
|
<dt>Check Module</dt>
|
|
|
|
|
<dd>Check the syntax of the module currently open in the Editor window. If the
|
|
|
|
|
module has not been saved IDLE will either prompt the user to save or
|
|
|
|
|
autosave, as selected in the General tab of the Idle Settings dialog. If
|
|
|
|
|
there is a syntax error, the approximate location is indicated in the
|
|
|
|
|
Editor window.</dd>
|
|
|
|
|
<dt>Run Module</dt>
|
|
|
|
|
<dd>Do Check Module (above). If no error, restart the shell to clean the
|
|
|
|
|
environment, then execute the module. Output is displayed in the Shell
|
|
|
|
|
window. Note that output requires use of <code class="docutils literal notranslate"><span class="pre">print</span></code> or <code class="docutils literal notranslate"><span class="pre">write</span></code>.
|
|
|
|
|
When execution is complete, the Shell retains focus and displays a prompt.
|
|
|
|
|
At this point, one may interactively explore the result of execution.
|
|
|
|
|
This is similar to executing a file with <code class="docutils literal notranslate"><span class="pre">python</span> <span class="pre">-i</span> <span class="pre">file</span></code> at a command
|
|
|
|
|
line.</dd>
|
|
|
|
|
</dl>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="section" id="shell-menu-shell-window-only">
|
|
|
|
|
<h3>Shell menu (Shell window only)<a class="headerlink" href="#shell-menu-shell-window-only" title="Permalink to this headline">¶</a></h3>
|
|
|
|
|
<dl class="docutils">
|
|
|
|
|
<dt>View Last Restart</dt>
|
|
|
|
|
<dd>Scroll the shell window to the last Shell restart.</dd>
|
|
|
|
|
<dt>Restart Shell</dt>
|
|
|
|
|
<dd>Restart the shell to clean the environment.</dd>
|
|
|
|
|
<dt>Interrupt Execution</dt>
|
|
|
|
|
<dd>Stop a running program.</dd>
|
|
|
|
|
</dl>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="section" id="debug-menu-shell-window-only">
|
|
|
|
|
<h3>Debug menu (Shell window only)<a class="headerlink" href="#debug-menu-shell-window-only" title="Permalink to this headline">¶</a></h3>
|
|
|
|
|
<dl class="docutils">
|
|
|
|
|
<dt>Go to File/Line</dt>
|
|
|
|
|
<dd>Look on the current line. with the cursor, and the line above for a filename
|
|
|
|
|
and line number. If found, open the file if not already open, and show the
|
|
|
|
|
line. Use this to view source lines referenced in an exception traceback
|
|
|
|
|
and lines found by Find in Files. Also available in the context menu of
|
|
|
|
|
the Shell window and Output windows.</dd>
|
|
|
|
|
</dl>
|
|
|
|
|
<dl class="docutils" id="index-3">
|
|
|
|
|
<dt>Debugger (toggle)</dt>
|
|
|
|
|
<dd>When activated, code entered in the Shell or run from an Editor will run
|
|
|
|
|
under the debugger. In the Editor, breakpoints can be set with the context
|
|
|
|
|
menu. This feature is still incomplete and somewhat experimental.</dd>
|
|
|
|
|
<dt>Stack Viewer</dt>
|
|
|
|
|
<dd>Show the stack traceback of the last exception in a tree widget, with
|
|
|
|
|
access to locals and globals.</dd>
|
|
|
|
|
<dt>Auto-open Stack Viewer</dt>
|
|
|
|
|
<dd>Toggle automatically opening the stack viewer on an unhandled exception.</dd>
|
|
|
|
|
</dl>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="section" id="options-menu-shell-and-editor">
|
|
|
|
|
<h3>Options menu (Shell and Editor)<a class="headerlink" href="#options-menu-shell-and-editor" title="Permalink to this headline">¶</a></h3>
|
|
|
|
|
<dl class="docutils">
|
|
|
|
|
<dt>Configure IDLE</dt>
|
|
|
|
|
<dd><p class="first">Open a configuration dialog and change preferences for the following:
|
|
|
|
|
fonts, indentation, keybindings, text color themes, startup windows and
|
|
|
|
|
size, additional help sources, and extensions (see below). On macOS,
|
|
|
|
|
open the configuration dialog by selecting Preferences in the application
|
|
|
|
|
menu. To use a new built-in color theme (IDLE Dark) with older IDLEs,
|
|
|
|
|
save it as a new custom theme.</p>
|
|
|
|
|
<p class="last">Non-default user settings are saved in a .idlerc directory in the user’s
|
|
|
|
|
home directory. Problems caused by bad user configuration files are solved
|
|
|
|
|
by editing or deleting one or more of the files in .idlerc.</p>
|
|
|
|
|
</dd>
|
|
|
|
|
<dt>Code Context (toggle)(Editor Window only)</dt>
|
|
|
|
|
<dd>Open a pane at the top of the edit window which shows the block context
|
|
|
|
|
of the code which has scrolled above the top of the window. Clicking a
|
|
|
|
|
line in this pane exposes that line at the top of the editor.</dd>
|
|
|
|
|
</dl>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="section" id="window-menu-shell-and-editor">
|
|
|
|
|
<h3>Window menu (Shell and Editor)<a class="headerlink" href="#window-menu-shell-and-editor" title="Permalink to this headline">¶</a></h3>
|
|
|
|
|
<dl class="docutils">
|
|
|
|
|
<dt>Zoom Height</dt>
|
|
|
|
|
<dd>Toggles the window between normal size and maximum height. The initial size
|
|
|
|
|
defaults to 40 lines by 80 chars unless changed on the General tab of the
|
|
|
|
|
Configure IDLE dialog.</dd>
|
|
|
|
|
</dl>
|
|
|
|
|
<p>The rest of this menu lists the names of all open windows; select one to bring
|
|
|
|
|
it to the foreground (deiconifying it if necessary).</p>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="section" id="help-menu-shell-and-editor">
|
|
|
|
|
<h3>Help menu (Shell and Editor)<a class="headerlink" href="#help-menu-shell-and-editor" title="Permalink to this headline">¶</a></h3>
|
|
|
|
|
<dl class="docutils">
|
|
|
|
|
<dt>About IDLE</dt>
|
|
|
|
|
<dd>Display version, copyright, license, credits, and more.</dd>
|
|
|
|
|
<dt>IDLE Help</dt>
|
|
|
|
|
<dd>Display this IDLE document, detailing the menu options, basic editing and
|
|
|
|
|
navigation, and other tips.</dd>
|
|
|
|
|
<dt>Python Docs</dt>
|
|
|
|
|
<dd>Access local Python documentation, if installed, or start a web browser
|
|
|
|
|
and open docs.python.org showing the latest Python documentation.</dd>
|
|
|
|
|
<dt>Turtle Demo</dt>
|
|
|
|
|
<dd>Run the turtledemo module with example Python code and turtle drawings.</dd>
|
|
|
|
|
</dl>
|
|
|
|
|
<p>Additional help sources may be added here with the Configure IDLE dialog under
|
|
|
|
|
the General tab. See the “Help sources” subsection below for more
|
|
|
|
|
on Help menu choices.</p>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="section" id="context-menus">
|
|
|
|
|
<span id="index-4"></span><h3>Context Menus<a class="headerlink" href="#context-menus" title="Permalink to this headline">¶</a></h3>
|
|
|
|
|
<p>Open a context menu by right-clicking in a window (Control-click on macOS).
|
|
|
|
|
Context menus have the standard clipboard functions also on the Edit menu.</p>
|
|
|
|
|
<dl class="docutils">
|
|
|
|
|
<dt>Cut</dt>
|
|
|
|
|
<dd>Copy selection into the system-wide clipboard; then delete the selection.</dd>
|
|
|
|
|
<dt>Copy</dt>
|
|
|
|
|
<dd>Copy selection into the system-wide clipboard.</dd>
|
|
|
|
|
<dt>Paste</dt>
|
|
|
|
|
<dd>Insert contents of the system-wide clipboard into the current window.</dd>
|
|
|
|
|
</dl>
|
|
|
|
|
<p>Editor windows also have breakpoint functions. Lines with a breakpoint set are
|
|
|
|
|
specially marked. Breakpoints only have an effect when running under the
|
|
|
|
|
debugger. Breakpoints for a file are saved in the user’s .idlerc directory.</p>
|
|
|
|
|
<dl class="docutils">
|
|
|
|
|
<dt>Set Breakpoint</dt>
|
|
|
|
|
<dd>Set a breakpoint on the current line.</dd>
|
|
|
|
|
<dt>Clear Breakpoint</dt>
|
|
|
|
|
<dd>Clear the breakpoint on that line.</dd>
|
|
|
|
|
</dl>
|
|
|
|
|
<p>Shell and Output windows also have the following.</p>
|
|
|
|
|
<dl class="docutils">
|
|
|
|
|
<dt>Go to file/line</dt>
|
|
|
|
|
<dd>Same as in Debug menu.</dd>
|
|
|
|
|
</dl>
|
|
|
|
|
<p>The Shell window also has an output squeezing facility explained in the
|
|
|
|
|
the <em>Python Shell window</em> subsection below.</p>
|
|
|
|
|
<dl class="docutils">
|
|
|
|
|
<dt>Squeeze</dt>
|
|
|
|
|
<dd>If the cursor is over an output line, squeeze all the output between
|
|
|
|
|
the code above and the prompt below down to a ‘Squeezed text’ label.</dd>
|
|
|
|
|
</dl>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="section" id="editing-and-navigation">
|
|
|
|
|
<h2>Editing and navigation<a class="headerlink" href="#editing-and-navigation" title="Permalink to this headline">¶</a></h2>
|
|
|
|
|
<div class="section" id="editor-windows">
|
|
|
|
|
<h3>Editor windows<a class="headerlink" href="#editor-windows" title="Permalink to this headline">¶</a></h3>
|
|
|
|
|
<p>IDLE may open editor windows when it starts, depending on settings
|
|
|
|
|
and how you start IDLE. Thereafter, use the File menu. There can be only
|
|
|
|
|
one open editor window for a given file.</p>
|
|
|
|
|
<p>The title bar contains the name of the file, the full path, and the version
|
|
|
|
|
of Python and IDLE running the window. The status bar contains the line
|
|
|
|
|
number (‘Ln’) and column number (‘Col’). Line numbers start with 1;
|
|
|
|
|
column numbers with 0.</p>
|
|
|
|
|
<p>IDLE assumes that files with a known .py* extension contain Python code
|
|
|
|
|
and that other files do not. Run Python code with the Run menu.</p>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="section" id="key-bindings">
|
|
|
|
|
<h3>Key bindings<a class="headerlink" href="#key-bindings" title="Permalink to this headline">¶</a></h3>
|
|
|
|
|
<p>In this section, ‘C’ refers to the <kbd class="kbd docutils literal notranslate">Control</kbd> key on Windows and Unix and
|
|
|
|
|
the <kbd class="kbd docutils literal notranslate">Command</kbd> key on macOS.</p>
|
|
|
|
|
<ul>
|
|
|
|
|
<li><p class="first"><kbd class="kbd docutils literal notranslate">Backspace</kbd> deletes to the left; <kbd class="kbd docutils literal notranslate">Del</kbd> deletes to the right</p>
|
|
|
|
|
</li>
|
|
|
|
|
<li><p class="first"><kbd class="kbd docutils literal notranslate">C-Backspace</kbd> delete word left; <kbd class="kbd docutils literal notranslate">C-Del</kbd> delete word to the right</p>
|
|
|
|
|
</li>
|
|
|
|
|
<li><p class="first">Arrow keys and <kbd class="kbd docutils literal notranslate">Page Up</kbd>/<kbd class="kbd docutils literal notranslate">Page Down</kbd> to move around</p>
|
|
|
|
|
</li>
|
|
|
|
|
<li><p class="first"><kbd class="kbd docutils literal notranslate">C-LeftArrow</kbd> and <kbd class="kbd docutils literal notranslate">C-RightArrow</kbd> moves by words</p>
|
|
|
|
|
</li>
|
|
|
|
|
<li><p class="first"><kbd class="kbd docutils literal notranslate">Home</kbd>/<kbd class="kbd docutils literal notranslate">End</kbd> go to begin/end of line</p>
|
|
|
|
|
</li>
|
|
|
|
|
<li><p class="first"><kbd class="kbd docutils literal notranslate">C-Home</kbd>/<kbd class="kbd docutils literal notranslate">C-End</kbd> go to begin/end of file</p>
|
|
|
|
|
</li>
|
|
|
|
|
<li><p class="first">Some useful Emacs bindings are inherited from Tcl/Tk:</p>
|
|
|
|
|
<blockquote>
|
|
|
|
|
<div><ul class="simple">
|
|
|
|
|
<li><kbd class="kbd docutils literal notranslate">C-a</kbd> beginning of line</li>
|
|
|
|
|
<li><kbd class="kbd docutils literal notranslate">C-e</kbd> end of line</li>
|
|
|
|
|
<li><kbd class="kbd docutils literal notranslate">C-k</kbd> kill line (but doesn’t put it in clipboard)</li>
|
|
|
|
|
<li><kbd class="kbd docutils literal notranslate">C-l</kbd> center window around the insertion point</li>
|
|
|
|
|
<li><kbd class="kbd docutils literal notranslate">C-b</kbd> go backward one character without deleting (usually you can
|
|
|
|
|
also use the cursor key for this)</li>
|
|
|
|
|
<li><kbd class="kbd docutils literal notranslate">C-f</kbd> go forward one character without deleting (usually you can
|
|
|
|
|
also use the cursor key for this)</li>
|
|
|
|
|
<li><kbd class="kbd docutils literal notranslate">C-p</kbd> go up one line (usually you can also use the cursor key for
|
|
|
|
|
this)</li>
|
|
|
|
|
<li><kbd class="kbd docutils literal notranslate">C-d</kbd> delete next character</li>
|
|
|
|
|
</ul>
|
|
|
|
|
</div></blockquote>
|
|
|
|
|
</li>
|
|
|
|
|
</ul>
|
|
|
|
|
<p>Standard keybindings (like <kbd class="kbd docutils literal notranslate">C-c</kbd> to copy and <kbd class="kbd docutils literal notranslate">C-v</kbd> to paste)
|
|
|
|
|
may work. Keybindings are selected in the Configure IDLE dialog.</p>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="section" id="automatic-indentation">
|
|
|
|
|
<h3>Automatic indentation<a class="headerlink" href="#automatic-indentation" title="Permalink to this headline">¶</a></h3>
|
|
|
|
|
<p>After a block-opening statement, the next line is indented by 4 spaces (in the
|
|
|
|
|
Python Shell window by one tab). After certain keywords (break, return etc.)
|
|
|
|
|
the next line is dedented. In leading indentation, <kbd class="kbd docutils literal notranslate">Backspace</kbd> deletes up
|
|
|
|
|
to 4 spaces if they are there. <kbd class="kbd docutils literal notranslate">Tab</kbd> inserts spaces (in the Python
|
|
|
|
|
Shell window one tab), number depends on Indent width. Currently, tabs
|
|
|
|
|
are restricted to four spaces due to Tcl/Tk limitations.</p>
|
|
|
|
|
<p>See also the indent/dedent region commands in the edit menu.</p>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="section" id="completions">
|
|
|
|
|
<h3>Completions<a class="headerlink" href="#completions" title="Permalink to this headline">¶</a></h3>
|
|
|
|
|
<p>Completions are supplied for functions, classes, and attributes of classes,
|
|
|
|
|
both built-in and user-defined. Completions are also provided for
|
|
|
|
|
filenames.</p>
|
|
|
|
|
<p>The AutoCompleteWindow (ACW) will open after a predefined delay (default is
|
|
|
|
|
two seconds) after a ‘.’ or (in a string) an os.sep is typed. If after one
|
|
|
|
|
of those characters (plus zero or more other characters) a tab is typed
|
|
|
|
|
the ACW will open immediately if a possible continuation is found.</p>
|
|
|
|
|
<p>If there is only one possible completion for the characters entered, a
|
|
|
|
|
<kbd class="kbd docutils literal notranslate">Tab</kbd> will supply that completion without opening the ACW.</p>
|
|
|
|
|
<p>‘Show Completions’ will force open a completions window, by default the
|
|
|
|
|
<kbd class="kbd docutils literal notranslate">C-space</kbd> will open a completions window. In an empty
|
|
|
|
|
string, this will contain the files in the current directory. On a
|
|
|
|
|
blank line, it will contain the built-in and user-defined functions and
|
|
|
|
|
classes in the current namespaces, plus any modules imported. If some
|
|
|
|
|
characters have been entered, the ACW will attempt to be more specific.</p>
|
|
|
|
|
<p>If a string of characters is typed, the ACW selection will jump to the
|
|
|
|
|
entry most closely matching those characters. Entering a <kbd class="kbd docutils literal notranslate">tab</kbd> will
|
|
|
|
|
cause the longest non-ambiguous match to be entered in the Editor window or
|
|
|
|
|
Shell. Two <kbd class="kbd docutils literal notranslate">tab</kbd> in a row will supply the current ACW selection, as
|
|
|
|
|
will return or a double click. Cursor keys, Page Up/Down, mouse selection,
|
|
|
|
|
and the scroll wheel all operate on the ACW.</p>
|
|
|
|
|
<p>“Hidden” attributes can be accessed by typing the beginning of hidden
|
|
|
|
|
name after a ‘.’, e.g. ‘_’. This allows access to modules with
|
|
|
|
|
<code class="docutils literal notranslate"><span class="pre">__all__</span></code> set, or to class-private attributes.</p>
|
|
|
|
|
<p>Completions and the ‘Expand Word’ facility can save a lot of typing!</p>
|
|
|
|
|
<p>Completions are currently limited to those in the namespaces. Names in
|
|
|
|
|
an Editor window which are not via <code class="docutils literal notranslate"><span class="pre">__main__</span></code> and <a class="reference internal" href="sys.html#sys.modules" title="sys.modules"><code class="xref py py-data docutils literal notranslate"><span class="pre">sys.modules</span></code></a> will
|
|
|
|
|
not be found. Run the module once with your imports to correct this situation.
|
|
|
|
|
Note that IDLE itself places quite a few modules in sys.modules, so
|
|
|
|
|
much can be found by default, e.g. the re module.</p>
|
|
|
|
|
<p>If you don’t like the ACW popping up unbidden, simply make the delay
|
|
|
|
|
longer or disable the extension.</p>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="section" id="calltips">
|
|
|
|
|
<h3>Calltips<a class="headerlink" href="#calltips" title="Permalink to this headline">¶</a></h3>
|
|
|
|
|
<p>A calltip is shown when one types <kbd class="kbd docutils literal notranslate">(</kbd> after the name of an <em>accessible</em>
|
|
|
|
|
function. A name expression may include dots and subscripts. A calltip
|
|
|
|
|
remains until it is clicked, the cursor is moved out of the argument area,
|
|
|
|
|
or <kbd class="kbd docutils literal notranslate">)</kbd> is typed. When the cursor is in the argument part of a definition,
|
|
|
|
|
the menu or shortcut display a calltip.</p>
|
|
|
|
|
<p>A calltip consists of the function signature and the first line of the
|
|
|
|
|
docstring. For builtins without an accessible signature, the calltip
|
|
|
|
|
consists of all lines up the fifth line or the first blank line. These
|
|
|
|
|
details may change.</p>
|
|
|
|
|
<p>The set of <em>accessible</em> functions depends on what modules have been imported
|
|
|
|
|
into the user process, including those imported by Idle itself,
|
|
|
|
|
and what definitions have been run, all since the last restart.</p>
|
|
|
|
|
<p>For example, restart the Shell and enter <code class="docutils literal notranslate"><span class="pre">itertools.count(</span></code>. A calltip
|
|
|
|
|
appears because Idle imports itertools into the user process for its own use.
|
|
|
|
|
(This could change.) Enter <code class="docutils literal notranslate"><span class="pre">turtle.write(</span></code> and nothing appears. Idle does
|
|
|
|
|
not import turtle. The menu or shortcut do nothing either. Enter
|
|
|
|
|
<code class="docutils literal notranslate"><span class="pre">import</span> <span class="pre">turtle</span></code> and then <code class="docutils literal notranslate"><span class="pre">turtle.write(</span></code> will work.</p>
|
|
|
|
|
<p>In an editor, import statements have no effect until one runs the file. One
|
|
|
|
|
might want to run a file after writing the import statements at the top,
|
|
|
|
|
or immediately run an existing file before editing.</p>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="section" id="python-shell-window">
|
|
|
|
|
<h3>Python Shell window<a class="headerlink" href="#python-shell-window" title="Permalink to this headline">¶</a></h3>
|
|
|
|
|
<p>With IDLE’s Shell, one enters, edits, and recalls complete statements.
|
|
|
|
|
Most consoles and terminals only work with a single physical line at a time.</p>
|
|
|
|
|
<p>When one pastes code into Shell, it is not compiled and possibly executed
|
|
|
|
|
until one hits <kbd class="kbd docutils literal notranslate">Return</kbd>. One may edit pasted code first.
|
|
|
|
|
If one pastes more that one statement into Shell, the result will be a
|
|
|
|
|
<a class="reference internal" href="exceptions.html#SyntaxError" title="SyntaxError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">SyntaxError</span></code></a> when multiple statements are compiled as if they were one.</p>
|
|
|
|
|
<p>The editing features described in previous subsections work when entering
|
|
|
|
|
code interactively. IDLE’s Shell window also responds to the following keys.</p>
|
|
|
|
|
<ul>
|
|
|
|
|
<li><p class="first"><kbd class="kbd docutils literal notranslate">C-c</kbd> interrupts executing command</p>
|
|
|
|
|
</li>
|
|
|
|
|
<li><p class="first"><kbd class="kbd docutils literal notranslate">C-d</kbd> sends end-of-file; closes window if typed at a <code class="docutils literal notranslate"><span class="pre">>>></span></code> prompt</p>
|
|
|
|
|
</li>
|
|
|
|
|
<li><p class="first"><kbd class="kbd docutils literal notranslate">Alt-/</kbd> (Expand word) is also useful to reduce typing</p>
|
|
|
|
|
<p>Command history</p>
|
|
|
|
|
<ul class="simple">
|
|
|
|
|
<li><kbd class="kbd docutils literal notranslate">Alt-p</kbd> retrieves previous command matching what you have typed. On
|
|
|
|
|
macOS use <kbd class="kbd docutils literal notranslate">C-p</kbd>.</li>
|
|
|
|
|
<li><kbd class="kbd docutils literal notranslate">Alt-n</kbd> retrieves next. On macOS use <kbd class="kbd docutils literal notranslate">C-n</kbd>.</li>
|
|
|
|
|
<li><kbd class="kbd docutils literal notranslate">Return</kbd> while on any previous command retrieves that command</li>
|
|
|
|
|
</ul>
|
|
|
|
|
</li>
|
|
|
|
|
</ul>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="section" id="text-colors">
|
|
|
|
|
<h3>Text colors<a class="headerlink" href="#text-colors" title="Permalink to this headline">¶</a></h3>
|
|
|
|
|
<p>Idle defaults to black on white text, but colors text with special meanings.
|
|
|
|
|
For the shell, these are shell output, shell error, user output, and
|
|
|
|
|
user error. For Python code, at the shell prompt or in an editor, these are
|
|
|
|
|
keywords, builtin class and function names, names following <code class="docutils literal notranslate"><span class="pre">class</span></code> and
|
|
|
|
|
<code class="docutils literal notranslate"><span class="pre">def</span></code>, strings, and comments. For any text window, these are the cursor (when
|
|
|
|
|
present), found text (when possible), and selected text.</p>
|
|
|
|
|
<p>Text coloring is done in the background, so uncolorized text is occasionally
|
|
|
|
|
visible. To change the color scheme, use the Configure IDLE dialog
|
|
|
|
|
Highlighting tab. The marking of debugger breakpoint lines in the editor and
|
|
|
|
|
text in popups and dialogs is not user-configurable.</p>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="section" id="startup-and-code-execution">
|
|
|
|
|
<h2>Startup and code execution<a class="headerlink" href="#startup-and-code-execution" title="Permalink to this headline">¶</a></h2>
|
|
|
|
|
<p>Upon startup with the <code class="docutils literal notranslate"><span class="pre">-s</span></code> option, IDLE will execute the file referenced by
|
|
|
|
|
the environment variables <span class="target" id="index-5"></span><code class="xref std std-envvar docutils literal notranslate"><span class="pre">IDLESTARTUP</span></code> or <span class="target" id="index-6"></span><a class="reference internal" href="../using/cmdline.html#envvar-PYTHONSTARTUP"><code class="xref std std-envvar docutils literal notranslate"><span class="pre">PYTHONSTARTUP</span></code></a>.
|
|
|
|
|
IDLE first checks for <code class="docutils literal notranslate"><span class="pre">IDLESTARTUP</span></code>; if <code class="docutils literal notranslate"><span class="pre">IDLESTARTUP</span></code> is present the file
|
|
|
|
|
referenced is run. If <code class="docutils literal notranslate"><span class="pre">IDLESTARTUP</span></code> is not present, IDLE checks for
|
|
|
|
|
<code class="docutils literal notranslate"><span class="pre">PYTHONSTARTUP</span></code>. Files referenced by these environment variables are
|
|
|
|
|
convenient places to store functions that are used frequently from the IDLE
|
|
|
|
|
shell, or for executing import statements to import common modules.</p>
|
|
|
|
|
<p>In addition, <code class="docutils literal notranslate"><span class="pre">Tk</span></code> also loads a startup file if it is present. Note that the
|
|
|
|
|
Tk file is loaded unconditionally. This additional file is <code class="docutils literal notranslate"><span class="pre">.Idle.py</span></code> and is
|
|
|
|
|
looked for in the user’s home directory. Statements in this file will be
|
|
|
|
|
executed in the Tk namespace, so this file is not useful for importing
|
|
|
|
|
functions to be used from IDLE’s Python shell.</p>
|
|
|
|
|
<div class="section" id="command-line-usage">
|
|
|
|
|
<h3>Command line usage<a class="headerlink" href="#command-line-usage" title="Permalink to this headline">¶</a></h3>
|
|
|
|
|
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>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)
|
|
|
|
|
</pre></div>
|
|
|
|
|
</div>
|
|
|
|
|
<p>If there are arguments:</p>
|
|
|
|
|
<ul class="simple">
|
|
|
|
|
<li>If <code class="docutils literal notranslate"><span class="pre">-</span></code>, <code class="docutils literal notranslate"><span class="pre">-c</span></code>, or <code class="docutils literal notranslate"><span class="pre">r</span></code> is used, all arguments are placed in
|
|
|
|
|
<code class="docutils literal notranslate"><span class="pre">sys.argv[1:...]</span></code> and <code class="docutils literal notranslate"><span class="pre">sys.argv[0]</span></code> is set to <code class="docutils literal notranslate"><span class="pre">''</span></code>, <code class="docutils literal notranslate"><span class="pre">'-c'</span></code>,
|
|
|
|
|
or <code class="docutils literal notranslate"><span class="pre">'-r'</span></code>. No editor window is opened, even if that is the default
|
|
|
|
|
set in the Options dialog.</li>
|
|
|
|
|
<li>Otherwise, arguments are files opened for editing and
|
|
|
|
|
<code class="docutils literal notranslate"><span class="pre">sys.argv</span></code> reflects the arguments passed to IDLE itself.</li>
|
|
|
|
|
</ul>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="section" id="startup-failure">
|
|
|
|
|
<h3>Startup failure<a class="headerlink" href="#startup-failure" title="Permalink to this headline">¶</a></h3>
|
|
|
|
|
<p>IDLE uses a socket to communicate between the IDLE GUI process and the user
|
|
|
|
|
code execution process. A connection must be established whenever the Shell
|
|
|
|
|
starts or restarts. (The latter is indicated by a divider line that says
|
|
|
|
|
‘RESTART’). If the user process fails to connect to the GUI process, it
|
|
|
|
|
displays a <code class="docutils literal notranslate"><span class="pre">Tk</span></code> error box with a ‘cannot connect’ message that directs the
|
|
|
|
|
user here. It then exits.</p>
|
|
|
|
|
<p>A common cause of failure is a user-written file with the same name as a
|
|
|
|
|
standard library module, such as <em>random.py</em> and <em>tkinter.py</em>. When such a
|
|
|
|
|
file is located in the same directory as a file that is about to be run,
|
|
|
|
|
IDLE cannot import the stdlib file. The current fix is to rename the
|
|
|
|
|
user file.</p>
|
|
|
|
|
<p>Though less common than in the past, an antivirus or firewall program may
|
|
|
|
|
stop the connection. If the program cannot be taught to allow the
|
|
|
|
|
connection, then it must be turned off for IDLE to work. It is safe to
|
|
|
|
|
allow this internal connection because no data is visible on external
|
|
|
|
|
ports. A similar problem is a network mis-configuration that blocks
|
|
|
|
|
connections.</p>
|
|
|
|
|
<p>Python installation issues occasionally stop IDLE: multiple versions can
|
|
|
|
|
clash, or a single installation might need admin access. If one undo the
|
|
|
|
|
clash, or cannot or does not want to run as admin, it might be easiest to
|
|
|
|
|
completely remove Python and start over.</p>
|
|
|
|
|
<p>A zombie pythonw.exe process could be a problem. On Windows, use Task
|
|
|
|
|
Manager to detect and stop one. Sometimes a restart initiated by a program
|
|
|
|
|
crash or Keyboard Interrupt (control-C) may fail to connect. Dismissing
|
|
|
|
|
the error box or Restart Shell on the Shell menu may fix a temporary problem.</p>
|
|
|
|
|
<p>When IDLE first starts, it attempts to read user configuration files in
|
|
|
|
|
~/.idlerc/ (~ is one’s home directory). If there is a problem, an error
|
|
|
|
|
message should be displayed. Leaving aside random disk glitches, this can
|
|
|
|
|
be prevented by never editing the files by hand, using the configuration
|
|
|
|
|
dialog, under Options, instead Options. Once it happens, the solution may
|
|
|
|
|
be to delete one or more of the configuration files.</p>
|
|
|
|
|
<p>If IDLE quits with no message, and it was not started from a console, try
|
|
|
|
|
starting from a console (<code class="docutils literal notranslate"><span class="pre">python</span> <span class="pre">-m</span> <span class="pre">idlelib)</span></code> and see if a message appears.</p>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="section" id="running-user-code">
|
|
|
|
|
<h3>Running user code<a class="headerlink" href="#running-user-code" title="Permalink to this headline">¶</a></h3>
|
|
|
|
|
<p>With rare exceptions, the result of executing Python code with IDLE is
|
|
|
|
|
intended to be the same as executing the same code by the default method,
|
|
|
|
|
directly with Python in a text-mode system console or terminal window.
|
|
|
|
|
However, the different interface and operation occasionally affect
|
|
|
|
|
visible results. For instance, <code class="docutils literal notranslate"><span class="pre">sys.modules</span></code> starts with more entries,
|
|
|
|
|
and <code class="docutils literal notranslate"><span class="pre">threading.activeCount()</span></code> returns 2 instead of 1.</p>
|
|
|
|
|
<p>By default, IDLE runs user code in a separate OS process rather than in
|
|
|
|
|
the user interface process that runs the shell and editor. In the execution
|
|
|
|
|
process, it replaces <code class="docutils literal notranslate"><span class="pre">sys.stdin</span></code>, <code class="docutils literal notranslate"><span class="pre">sys.stdout</span></code>, and <code class="docutils literal notranslate"><span class="pre">sys.stderr</span></code>
|
|
|
|
|
with objects that get input from and send output to the Shell window.
|
|
|
|
|
The original values stored in <code class="docutils literal notranslate"><span class="pre">sys.__stdin__</span></code>, <code class="docutils literal notranslate"><span class="pre">sys.__stdout__</span></code>, and
|
|
|
|
|
<code class="docutils literal notranslate"><span class="pre">sys.__stderr__</span></code> are not touched, but may be <code class="docutils literal notranslate"><span class="pre">None</span></code>.</p>
|
|
|
|
|
<p>When Shell has the focus, it controls the keyboard and screen. This is
|
|
|
|
|
normally transparent, but functions that directly access the keyboard
|
|
|
|
|
and screen will not work. These include system-specific functions that
|
|
|
|
|
determine whether a key has been pressed and if so, which.</p>
|
|
|
|
|
<p>IDLE’s standard stream replacements are not inherited by subprocesses
|
|
|
|
|
created in the execution process, whether directly by user code or by modules
|
|
|
|
|
such as multiprocessing. If such subprocess use <code class="docutils literal notranslate"><span class="pre">input</span></code> from sys.stdin
|
|
|
|
|
or <code class="docutils literal notranslate"><span class="pre">print</span></code> or <code class="docutils literal notranslate"><span class="pre">write</span></code> to sys.stdout or sys.stderr,
|
|
|
|
|
IDLE should be started in a command line window. The secondary subprocess
|
|
|
|
|
will then be attached to that window for input and output.</p>
|
|
|
|
|
<p>If <code class="docutils literal notranslate"><span class="pre">sys</span></code> is reset by user code, such as with <code class="docutils literal notranslate"><span class="pre">importlib.reload(sys)</span></code>,
|
|
|
|
|
IDLE’s changes are lost and input from the keyboard and output to the screen
|
|
|
|
|
will not work correctly.</p>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="section" id="user-output-in-shell">
|
|
|
|
|
<h3>User output in Shell<a class="headerlink" href="#user-output-in-shell" title="Permalink to this headline">¶</a></h3>
|
|
|
|
|
<p>When a program outputs text, the result is determined by the
|
|
|
|
|
corresponding output device. When IDLE executes user code, <code class="docutils literal notranslate"><span class="pre">sys.stdout</span></code>
|
|
|
|
|
and <code class="docutils literal notranslate"><span class="pre">sys.stderr</span></code> are connected to the display area of IDLE’s Shell. Some of
|
|
|
|
|
its features are inherited from the underlying Tk Text widget. Others
|
|
|
|
|
are programmed additions. Where it matters, Shell is designed for development
|
|
|
|
|
rather than production runs.</p>
|
|
|
|
|
<p>For instance, Shell never throws away output. A program that sends unlimited
|
|
|
|
|
output to Shell will eventually fill memory, resulting in a memory error.
|
|
|
|
|
In contrast, some system text windows only keep the last n lines of output.
|
|
|
|
|
A Windows console, for instance, keeps a user-settable 1 to 9999 lines,
|
|
|
|
|
with 300 the default.</p>
|
|
|
|
|
<p>Text widgets display a subset of Unicode, the Basic Multilingual Plane (BMP).
|
|
|
|
|
Which characters get a proper glyph instead of a replacement box depends on
|
|
|
|
|
the operating system and installed fonts. Newline characters cause following
|
|
|
|
|
text to appear on a new line, but other control characters are either
|
|
|
|
|
replaced with a box or deleted. However, <code class="docutils literal notranslate"><span class="pre">repr()</span></code>, which is used for
|
|
|
|
|
interactive echo of expression values, replaces control characters,
|
|
|
|
|
some BMP codepoints, and all non-BMP characters with escape codes
|
|
|
|
|
before they are output.</p>
|
|
|
|
|
<p>Normal and error output are generally kept separate (on separate lines)
|
|
|
|
|
from code input and each other. They each get different highlight colors.</p>
|
|
|
|
|
<p>For SyntaxError tracebacks, the normal ‘^’ marking where the error was
|
|
|
|
|
detected is replaced by coloring the text with an error highlight.
|
|
|
|
|
When code run from a file causes other exceptions, one may right click
|
|
|
|
|
on a traceback line to jump to the corresponding line in an IDLE editor.
|
|
|
|
|
The file will be opened if necessary.</p>
|
|
|
|
|
<p>Shell has a special facility for squeezing output lines down to a
|
|
|
|
|
‘Squeezed text’ label. This is done automatically
|
|
|
|
|
for output over N lines (N = 50 by default).
|
|
|
|
|
N can be changed in the PyShell section of the General
|
|
|
|
|
page of the Settings dialog. Output with fewer lines can be squeezed by
|
|
|
|
|
right clicking on the output. This can be useful lines long enough to slow
|
|
|
|
|
down scrolling.</p>
|
|
|
|
|
<p>Squeezed output is expanded in place by double-clicking the label.
|
|
|
|
|
It can also be sent to the clipboard or a separate view window by
|
|
|
|
|
right-clicking the label.</p>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="section" id="developing-tkinter-applications">
|
|
|
|
|
<h3>Developing tkinter applications<a class="headerlink" href="#developing-tkinter-applications" title="Permalink to this headline">¶</a></h3>
|
|
|
|
|
<p>IDLE is intentionally different from standard Python in order to
|
|
|
|
|
facilitate development of tkinter programs. Enter <code class="docutils literal notranslate"><span class="pre">import</span> <span class="pre">tkinter</span> <span class="pre">as</span> <span class="pre">tk;</span>
|
|
|
|
|
<span class="pre">root</span> <span class="pre">=</span> <span class="pre">tk.Tk()</span></code> in standard Python and nothing appears. Enter the same
|
|
|
|
|
in IDLE and a tk window appears. In standard Python, one must also enter
|
|
|
|
|
<code class="docutils literal notranslate"><span class="pre">root.update()</span></code> to see the window. IDLE does the equivalent in the
|
|
|
|
|
background, about 20 times a second, which is about every 50 milleseconds.
|
|
|
|
|
Next enter <code class="docutils literal notranslate"><span class="pre">b</span> <span class="pre">=</span> <span class="pre">tk.Button(root,</span> <span class="pre">text='button');</span> <span class="pre">b.pack()</span></code>. Again,
|
|
|
|
|
nothing visibly changes in standard Python until one enters <code class="docutils literal notranslate"><span class="pre">root.update()</span></code>.</p>
|
|
|
|
|
<p>Most tkinter programs run <code class="docutils literal notranslate"><span class="pre">root.mainloop()</span></code>, which usually does not
|
|
|
|
|
return until the tk app is destroyed. If the program is run with
|
|
|
|
|
<code class="docutils literal notranslate"><span class="pre">python</span> <span class="pre">-i</span></code> or from an IDLE editor, a <code class="docutils literal notranslate"><span class="pre">>>></span></code> shell prompt does not
|
|
|
|
|
appear until <code class="docutils literal notranslate"><span class="pre">mainloop()</span></code> returns, at which time there is nothing left
|
|
|
|
|
to interact with.</p>
|
|
|
|
|
<p>When running a tkinter program from an IDLE editor, one can comment out
|
|
|
|
|
the mainloop call. One then gets a shell prompt immediately and can
|
|
|
|
|
interact with the live application. One just has to remember to
|
|
|
|
|
re-enable the mainloop call when running in standard Python.</p>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="section" id="running-without-a-subprocess">
|
|
|
|
|
<h3>Running without a subprocess<a class="headerlink" href="#running-without-a-subprocess" title="Permalink to this headline">¶</a></h3>
|
|
|
|
|
<p>By default, IDLE executes user code in a separate subprocess via a socket,
|
|
|
|
|
which uses the internal loopback interface. This connection is not
|
|
|
|
|
externally visible and no data is sent to or received from the Internet.
|
|
|
|
|
If firewall software complains anyway, you can ignore it.</p>
|
|
|
|
|
<p>If the attempt to make the socket connection fails, Idle will notify you.
|
|
|
|
|
Such failures are sometimes transient, but if persistent, the problem
|
|
|
|
|
may be either a firewall blocking the connection or misconfiguration of
|
|
|
|
|
a particular system. Until the problem is fixed, one can run Idle with
|
|
|
|
|
the -n command line switch.</p>
|
|
|
|
|
<p>If IDLE is started with the -n command line switch it will run in a
|
|
|
|
|
single process and will not create the subprocess which runs the RPC
|
|
|
|
|
Python execution server. This can be useful if Python cannot create
|
|
|
|
|
the subprocess or the RPC socket interface on your platform. However,
|
|
|
|
|
in this mode user code is not isolated from IDLE itself. Also, the
|
|
|
|
|
environment is not restarted when Run/Run Module (F5) is selected. If
|
|
|
|
|
your code has been modified, you must reload() the affected modules and
|
|
|
|
|
re-import any specific items (e.g. from foo import baz) if the changes
|
|
|
|
|
are to take effect. For these reasons, it is preferable to run IDLE
|
|
|
|
|
with the default subprocess if at all possible.</p>
|
|
|
|
|
<div class="deprecated">
|
|
|
|
|
<p><span class="versionmodified">Deprecated since version 3.4.</span></p>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="section" id="help-and-preferences">
|
|
|
|
|
<h2>Help and preferences<a class="headerlink" href="#help-and-preferences" title="Permalink to this headline">¶</a></h2>
|
|
|
|
|
<div class="section" id="help-sources">
|
|
|
|
|
<h3>Help sources<a class="headerlink" href="#help-sources" title="Permalink to this headline">¶</a></h3>
|
|
|
|
|
<p>Help menu entry “IDLE Help” displays a formatted html version of the
|
|
|
|
|
IDLE chapter of the Library Reference. The result, in a read-only
|
|
|
|
|
tkinter text window, is close to what one sees in a web browser.
|
|
|
|
|
Navigate through the text with a mousewheel,
|
|
|
|
|
the scrollbar, or up and down arrow keys held down.
|
|
|
|
|
Or click the TOC (Table of Contents) button and select a section
|
|
|
|
|
header in the opened box.</p>
|
|
|
|
|
<p>Help menu entry “Python Docs” opens the extensive sources of help,
|
|
|
|
|
including tutorials, available at docs.python.org/x.y, where ‘x.y’
|
|
|
|
|
is the currently running Python version. If your system
|
|
|
|
|
has an off-line copy of the docs (this may be an installation option),
|
|
|
|
|
that will be opened instead.</p>
|
|
|
|
|
<p>Selected URLs can be added or removed from the help menu at any time using the
|
|
|
|
|
General tab of the Configure IDLE dialog .</p>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="section" id="setting-preferences">
|
|
|
|
|
<h3>Setting preferences<a class="headerlink" href="#setting-preferences" title="Permalink to this headline">¶</a></h3>
|
|
|
|
|
<p>The font preferences, highlighting, keys, and general preferences can be
|
|
|
|
|
changed via Configure IDLE on the Option menu. Keys can be user defined;
|
|
|
|
|
IDLE ships with four built-in key sets. In addition, a user can create a
|
|
|
|
|
custom key set in the Configure IDLE dialog under the keys tab.</p>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="section" id="idle-on-macos">
|
|
|
|
|
<h3>IDLE on macOS<a class="headerlink" href="#idle-on-macos" title="Permalink to this headline">¶</a></h3>
|
|
|
|
|
<p>Under System Preferences: Dock, one can set “Prefer tabs when opening
|
|
|
|
|
documents” to “Always”. This setting is not compatible with the tk/tkinter
|
|
|
|
|
GUI framework used by IDLE, and it breaks a few IDLE features.</p>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="section" id="extensions">
|
|
|
|
|
<h3>Extensions<a class="headerlink" href="#extensions" title="Permalink to this headline">¶</a></h3>
|
|
|
|
|
<p>IDLE contains an extension facility. Preferences for extensions can be
|
|
|
|
|
changed with the Extensions tab of the preferences dialog. See the
|
|
|
|
|
beginning of config-extensions.def in the idlelib directory for further
|
|
|
|
|
information. The only current default extension is zzdummy, an example
|
|
|
|
|
also used for testing.</p>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="sphinxsidebar" role="navigation" aria-label="main navigation">
|
|
|
|
|
<div class="sphinxsidebarwrapper">
|
|
|
|
|
<h3><a href="../contents.html">Table of Contents</a></h3>
|
|
|
|
|
<ul>
|
|
|
|
|
<li><a class="reference internal" href="#">IDLE</a><ul>
|
|
|
|
|
<li><a class="reference internal" href="#menus">Menus</a><ul>
|
|
|
|
|
<li><a class="reference internal" href="#file-menu-shell-and-editor">File menu (Shell and Editor)</a></li>
|
|
|
|
|
<li><a class="reference internal" href="#edit-menu-shell-and-editor">Edit menu (Shell and Editor)</a></li>
|
|
|
|
|
<li><a class="reference internal" href="#format-menu-editor-window-only">Format menu (Editor window only)</a></li>
|
|
|
|
|
<li><a class="reference internal" href="#run-menu-editor-window-only">Run menu (Editor window only)</a></li>
|
|
|
|
|
<li><a class="reference internal" href="#shell-menu-shell-window-only">Shell menu (Shell window only)</a></li>
|
|
|
|
|
<li><a class="reference internal" href="#debug-menu-shell-window-only">Debug menu (Shell window only)</a></li>
|
|
|
|
|
<li><a class="reference internal" href="#options-menu-shell-and-editor">Options menu (Shell and Editor)</a></li>
|
|
|
|
|
<li><a class="reference internal" href="#window-menu-shell-and-editor">Window menu (Shell and Editor)</a></li>
|
|
|
|
|
<li><a class="reference internal" href="#help-menu-shell-and-editor">Help menu (Shell and Editor)</a></li>
|
|
|
|
|
<li><a class="reference internal" href="#context-menus">Context Menus</a></li>
|
|
|
|
|
</ul>
|
|
|
|
|
</li>
|
|
|
|
|
<li><a class="reference internal" href="#editing-and-navigation">Editing and navigation</a><ul>
|
|
|
|
|
<li><a class="reference internal" href="#editor-windows">Editor windows</a></li>
|
|
|
|
|
<li><a class="reference internal" href="#key-bindings">Key bindings</a></li>
|
|
|
|
|
<li><a class="reference internal" href="#automatic-indentation">Automatic indentation</a></li>
|
|
|
|
|
<li><a class="reference internal" href="#completions">Completions</a></li>
|
|
|
|
|
<li><a class="reference internal" href="#calltips">Calltips</a></li>
|
|
|
|
|
<li><a class="reference internal" href="#python-shell-window">Python Shell window</a></li>
|
|
|
|
|
<li><a class="reference internal" href="#text-colors">Text colors</a></li>
|
|
|
|
|
</ul>
|
|
|
|
|
</li>
|
|
|
|
|
<li><a class="reference internal" href="#startup-and-code-execution">Startup and code execution</a><ul>
|
|
|
|
|
<li><a class="reference internal" href="#command-line-usage">Command line usage</a></li>
|
|
|
|
|
<li><a class="reference internal" href="#startup-failure">Startup failure</a></li>
|
|
|
|
|
<li><a class="reference internal" href="#running-user-code">Running user code</a></li>
|
|
|
|
|
<li><a class="reference internal" href="#user-output-in-shell">User output in Shell</a></li>
|
|
|
|
|
<li><a class="reference internal" href="#developing-tkinter-applications">Developing tkinter applications</a></li>
|
|
|
|
|
<li><a class="reference internal" href="#running-without-a-subprocess">Running without a subprocess</a></li>
|
|
|
|
|
</ul>
|
|
|
|
|
</li>
|
|
|
|
|
<li><a class="reference internal" href="#help-and-preferences">Help and preferences</a><ul>
|
|
|
|
|
<li><a class="reference internal" href="#help-sources">Help sources</a></li>
|
|
|
|
|
<li><a class="reference internal" href="#setting-preferences">Setting preferences</a></li>
|
|
|
|
|
<li><a class="reference internal" href="#idle-on-macos">IDLE on macOS</a></li>
|
|
|
|
|
<li><a class="reference internal" href="#extensions">Extensions</a></li>
|
|
|
|
|
</ul>
|
|
|
|
|
</li>
|
|
|
|
|
</ul>
|
|
|
|
|
</li>
|
|
|
|
|
</ul>
|
|
|
|
|
|
|
|
|
|
<h4>Previous topic</h4>
|
|
|
|
|
<p class="topless"><a href="tkinter.scrolledtext.html"
|
|
|
|
|
title="previous chapter"><code class="docutils literal notranslate"><span class="pre">tkinter.scrolledtext</span></code> — Scrolled Text Widget</a></p>
|
|
|
|
|
<h4>Next topic</h4>
|
|
|
|
|
<p class="topless"><a href="othergui.html"
|
|
|
|
|
title="next chapter">Other Graphical User Interface Packages</a></p>
|
|
|
|
|
<div role="note" aria-label="source link">
|
|
|
|
|
<h3>This Page</h3>
|
|
|
|
|
<ul class="this-page-menu">
|
|
|
|
|
<li><a href="../bugs.html">Report a Bug</a></li>
|
|
|
|
|
<li>
|
|
|
|
|
<a href="https://github.com/python/cpython/blob/master/Doc/library/idle.rst"
|
|
|
|
|
rel="nofollow">Show Source
|
|
|
|
|
</a>
|
|
|
|
|
</li>
|
|
|
|
|
</ul>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="clearer"></div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="related" role="navigation" aria-label="related navigation">
|
|
|
|
|
<h3>Navigation</h3>
|
|
|
|
|
<ul>
|
|
|
|
|
<li class="right" style="margin-right: 10px">
|
|
|
|
|
<a href="../genindex.html" title="General Index"
|
|
|
|
|
>index</a></li>
|
|
|
|
|
<li class="right" >
|
|
|
|
|
<a href="../py-modindex.html" title="Python Module Index"
|
|
|
|
|
>modules</a> |</li>
|
|
|
|
|
<li class="right" >
|
|
|
|
|
<a href="othergui.html" title="Other Graphical User Interface Packages"
|
|
|
|
|
>next</a> |</li>
|
|
|
|
|
<li class="right" >
|
|
|
|
|
<a href="tkinter.scrolledtext.html" title="tkinter.scrolledtext — Scrolled Text Widget"
|
|
|
|
|
>previous</a> |</li>
|
|
|
|
|
|
|
|
|
|
<li><img src="../_static/py.png" alt=""
|
|
|
|
|
style="vertical-align: middle; margin-top: -1px"/></li>
|
|
|
|
|
<li><a href="https://www.python.org/">Python</a> »</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li>
|
|
|
|
|
<a href="../index.html">3.8.0a0 Documentation</a> »
|
|
|
|
|
</li>
|
|
|
|
|
|
|
|
|
|
<li class="nav-item nav-item-1"><a href="index.html" >The Python Standard Library</a> »</li>
|
|
|
|
|
<li class="nav-item nav-item-2"><a href="tk.html" >Graphical User Interfaces with Tk</a> »</li>
|
|
|
|
|
<li class="right">
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<div class="inline-search" style="display: none" role="search">
|
|
|
|
|
<form class="inline-search" action="../search.html" method="get">
|
|
|
|
|
<input placeholder="Quick search" type="text" name="q" />
|
|
|
|
|
<input type="submit" value="Go" />
|
|
|
|
|
<input type="hidden" name="check_keywords" value="yes" />
|
|
|
|
|
<input type="hidden" name="area" value="default" />
|
|
|
|
|
</form>
|
|
|
|
|
</div>
|
|
|
|
|
<script type="text/javascript">$('.inline-search').show(0);</script>
|
|
|
|
|
|
|
|
|
|
|
</li>
|
|
|
|
|
|
|
|
|
|
</ul>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="footer">
|
|
|
|
|
© <a href="../copyright.html">Copyright</a> 2001-2018, Python Software Foundation.
|
|
|
|
|
<br />
|
|
|
|
|
|
|
|
|
|
The Python Software Foundation is a non-profit corporation.
|
|
|
|
|
<a href="https://www.python.org/psf/donations/">Please donate.</a>
|
|
|
|
|
<br />
|
|
|
|
|
<br />
|
|
|
|
|
|
|
|
|
|
Last updated on Nov 12, 2018.
|
|
|
|
|
<a href="https://docs.python.org/3/bugs.html">Found a bug</a>?
|
|
|
|
|
<br />
|
|
|
|
|
|
|
|
|
|
Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.8.1.
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
</body>
|
|
|
|
|
</html>
|