25.5. IDLE
IDLE is the Python IDE built with the tkinter
GUI toolkit.
IDLE has the following features:
- coded in 100% pure Python, using the
tkinter
GUI toolkit - cross-platform: works on Windows, Unix, and Mac OS X
- multi-window text editor with multiple undo, Python colorizing, smart indent, call tips, and many other features
- Python shell window (a.k.a. interactive interpreter)
- debugger (not complete, but you can set breakpoints, view and step)
25.5.3. Syntax colors
The coloring is applied in a background “thread,” so you may occasionally see
uncolorized text. To change the color scheme, edit the [Colors]
section in
config.txt
.
- Python syntax colors:
- Keywords
- orange
- Strings
- green
- Comments
- red
- Definitions
- blue
- Shell colors:
- Console output
- brown
- stdout
- blue
- stderr
- dark green
- stdin
- black
25.5.4. Startup
Upon startup with the -s
option, IDLE will execute the file referenced by
the environment variables IDLESTARTUP
or PYTHONSTARTUP
.
IDLE first checks for IDLESTARTUP
; if IDLESTARTUP
is present the file
referenced is run. If IDLESTARTUP
is not present, IDLE checks for
PYTHONSTARTUP
. 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.
In addition, Tk
also loads a startup file if it is present. Note that the
Tk file is loaded unconditionally. This additional file is .Idle.py
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.
25.5.4.1. Command line usage
idle.py [-c command] [-d] [-e] [-s] [-t title] [arg] ...
-c command run this command
-d enable debugger
-e edit mode; arguments are files to be edited
-s run $IDLESTARTUP or $PYTHONSTARTUP first
-t title set title of shell window
If there are arguments:
- If
-e
is used, arguments are files opened for editing andsys.argv
reflects the arguments passed to IDLE itself. - Otherwise, if
-c
is used, all arguments are placed insys.argv[1:...]
, withsys.argv[0]
set to'-c'
. - Otherwise, if neither
-e
nor-c
is used, the first argument is a script which is executed with the remaining arguments insys.argv[1:...]
andsys.argv[0]
set to the script name. If the script name is ‘-‘, no script is executed but an interactive Python session is started; the arguments are still available insys.argv
.
25.5.4.2. Running without a subprocess
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.
Deprecated since version 3.4.
25.5.5. Help and preferences
25.5.5.1. Additional help sources
IDLE includes a help menu entry called “Python Docs” that will open the extensive sources of help, including tutorials, available at docs.python.org. Selected URLs can be added or removed from the help menu at any time using the Configure IDLE dialog. See the IDLE help option in the help menu of IDLE for more information.
25.5.5.2. Setting preferences
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.
25.5.5.3. Extensions
IDLE contains an extension facility. Peferences for extensions can be changed with Configure Extensions. See the beginning of config-extensions.def in the idlelib directory for further information. The default extensions are currently:
- FormatParagraph
- AutoExpand
- ZoomHeight
- ScriptBinding
- CallTips
- ParenMatch
- AutoComplete
- CodeContext
- RstripExtension