##// END OF EJS Templates
util script
util script

File last commit:

r60:35e7be3d
r83:24892be0
Show More
ipython.1
390 lines | 16.2 KiB | application/x-troff | GroffLexer
.\" Hey, EMACS: -*- nroff -*-
.\" First parameter, NAME, should be all caps
.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection
.\" other parameters are allowed: see man(7), man(1)
.TH IPYTHON 1 "November 30, 2004"
.\" Please adjust this date whenever revising the manpage.
.\"
.\" Some roff macros, for reference:
.\" .nh disable hyphenation
.\" .hy enable hyphenation
.\" .ad l left justify
.\" .ad b justify to both left and right margins
.\" .nf disable filling
.\" .fi enable filling
.\" .br insert line break
.\" .sp <n> insert n+1 empty lines
.\" for manpage-specific macros, see man(7) and groff_man(7)
.\" .SH section heading
.\" .SS secondary section heading
.\"
.\"
.\" To preview this page as plain text: nroff -man ipython.1
.\"
.SH NAME
ipython \- An Enhanced Interactive Python
.SH SYNOPSIS
.B ipython
.RI [ options ] " files" ...
.SH DESCRIPTION
An interactive Python shell with automatic history (input and output),
dynamic object introspection, easier configuration, command
completion, access to the system shell, integration with numerical and
scientific computing tools, and more.
.SH SPECIAL THREADING OPTIONS
The following special options are ONLY valid at the beginning of the command
line, and not later. This is because they control the initialization of
ipython itself, before the normal option-handling mechanism is active.
.TP
.B \-gthread, \-qthread, \-wthread, \-pylab
Only ONE of these can be given, and it can only be given as the first option
passed to IPython (it will have no effect in any other position). They
provide threading support for the GTK, QT and WXWidgets toolkits, and for the
matplotlib library.
.br
.sp 1
With any of the first three options, IPython starts running a separate thread
for the graphical toolkit's operation, so that you can open and control
graphical elements from within an IPython command line, without blocking. All
three provide essentially the same functionality, respectively for GTK, QT and
WXWidgets (via their Python interfaces).
.br
.sp 1
If \-pylab is given, IPython loads special support for the matplotlib library
(http://matplotlib.sourceforge.net), allowing interactive usage of any of its
backends as defined in the user's .matplotlibrc file. It automatically
activates GTK, QT or WX threading for IPyhton if the choice of matplotlib
backend requires it. It also modifies the %run command to correctly execute
(without blocking) any matplotlib-based script which calls show() at the end.
.TP
.B \-tk
The \-g/q/wthread options, and \-pylab (if matplotlib is configured to use
GTK, QT or WX), will normally block Tk graphical interfaces. This means that
when GTK, QT or WX threading is active, any attempt to open a Tk GUI will
result in a dead window, and possibly cause the Python interpreter to crash.
An extra option, \-tk, is available to address this issue. It can ONLY be
given as a SECOND option after any of the above (\-gthread, \-qthread,
\-wthread or \-pylab).
.br
.sp 1
If \-tk is given, IPython will try to coordinate Tk threading with GTK, QT or
WX. This is however potentially unreliable, and you will have to test on your
platform and Python configuration to determine whether it works for you.
Debian users have reported success, apparently due to the fact that Debian
builds all of Tcl, Tk, Tkinter and Python with pthreads support. Under other
Linux environments (such as Fedora Core 2), this option has caused random
crashes and lockups of the Python interpreter. Under other operating systems
(Mac OSX and Windows), you'll need to try it to find out, since currently no
user reports are available.
.br
.sp 1
There is unfortunately no way for IPython to determine at runtime whether \-tk
will work reliably or not, so you will need to do some experiments before
relying on it for regular work.
.
.SS A WARNING ABOUT SIGNALS AND THREADS
When any of the thread systems (GTK, QT or WX) are active, either directly or
via \-pylab with a threaded backend, it is impossible to interrupt
long-running Python code via Ctrl\-C. IPython can not pass the
KeyboardInterrupt exception (or the underlying SIGINT) across threads, so any
long-running process started from IPython will run to completion, or will have
to be killed via an external (OS-based) mechanism.
.br
.sp 1
To the best of my knowledge, this limitation is imposed by the Python
interpreter itself, and it comes from the difficulty of writing portable
signal/threaded code. If any user is an expert on this topic and can suggest
a better solution, I would love to hear about it. In the IPython sources,
look at the Shell.py module, and in particular at the runcode() method.
.
.SH REGULAR OPTIONS
After the above threading options have been given, regular options can follow
in any order. All options can be abbreviated to their shortest non-ambiguous
form and are case-sensitive. One or two dashes can be used. Some options
have an alternate short form, indicated after a |.
.br
.sp 1
Most options can also be set from your ipythonrc configuration file.
See the provided examples for assistance. Options given on the
commandline override the values set in the ipythonrc file.
.br
.sp 1
All options with a [no] prepended can be specified in negated form
(\-nooption instead of \-option) to turn the feature off.
.TP
.B \-h, \-\-help
Show summary of options.
.TP
.B \-[no]autocall
Make IPython automatically call any callable object even if you didn't type
explicit parentheses. For example, 'str 43' becomes 'str(43)' automatically.
.TP
.B \-[no]autoindent
Turn automatic indentation on/off.
.TP
.B \-[no]automagic
Make magic commands automatic (without needing their first character
to be %). Type %magic at the IPython prompt for more information.
.TP
.B \-[no]autoedit_syntax
When a syntax error occurs after editing a file, automatically open the file
to the trouble causing line for convenient fixing.
.TP
.B \-[no]banner
Print the intial information banner (default on).
.TP
.B \-c <command>
Execute the given command string, and set sys.argv to ['c']. This is similar
to the \-c option in the normal Python interpreter.
.TP
.B \-cache_size|cs <n>
Size of the output cache (maximum number of entries to hold in
memory). The default is 1000, you can change it permanently in your
config file. Setting it to 0 completely disables the caching system,
and the minimum value accepted is 20 (if you provide a value less than
20, it is reset to 0 and a warning is issued). This limit is defined
because otherwise you'll spend more time re-flushing a too small cache
than working.
.TP
.B \-classic|cl
Gives IPython a similar feel to the classic Python prompt.
.TP
.B \-colors <scheme>
Color scheme for prompts and exception reporting. Currently
implemented: NoColor, Linux, and LightBG.
.TP
.B \-[no]color_info
IPython can display information about objects via a set of functions,
and optionally can use colors for this, syntax highlighting source
code and various other elements. However, because this information is
passed through a pager (like 'less') and many pagers get confused with
color codes, this option is off by default. You can test it and turn
it on permanently in your ipythonrc file if it works for you. As a
reference, the 'less' pager supplied with Mandrake 8.2 works ok, but
that in RedHat 7.2 doesn't.
.br
.sp 1
Test it and turn it on permanently if it works with your system. The
magic function @color_info allows you to toggle this interactively for
testing.
.TP
.B \-[no]confirm_exit
Set to confirm when you try to exit IPython with an EOF (Control-D in
Unix, Control-Z/Enter in Windows). Note that using the magic functions
@Exit or @Quit you can force a direct exit, bypassing any
confirmation.
.TP
.B \-[no]debug
Show information about the loading process. Very useful to pin down
problems with your configuration files or to get details about session
restores.
.TP
.B \-[no]deep_reload
IPython can use the deep_reload module which reloads changes in
modules recursively (it replaces the reload() function, so you don't
need to change anything to use it). deep_reload() forces a full reload
of modules whose code may have changed, which the default reload()
function does not.
.br
.sp 1
When deep_reload is off, IPython will use the normal reload(), but
deep_reload will still be available as dreload(). This feature is off
by default [which means that you have both normal reload() and
dreload()].
.TP
.B \-editor <name>
Which editor to use with the @edit command. By default, IPython will
honor your EDITOR environment variable (if not set, vi is the Unix
default and notepad the Windows one). Since this editor is invoked on
the fly by IPython and is meant for editing small code snippets, you
may want to use a small, lightweight editor here (in case your default
EDITOR is something like Emacs).
.TP
.B \-ipythondir <name>
The name of your IPython configuration directory IPYTHONDIR. This can
also be specified through the environment variable IPYTHONDIR.
.TP
.B \-log|l
Generate a log file of all input. The file is named ipython_log.py in your
current directory (which prevents logs from multiple IPython sessions from
trampling each other). You can use this to later restore a session by loading
your logfile as a file to be executed with option -logplay (see below).
.TP
.B \-logfile|lf
Specify the name of your logfile.
.TP
.B \-logplay|lp
Replay a previous log. For restoring a session as close as possible to
the state you left it in, use this option (don't just run the
logfile). With \-logplay, IPython will try to reconstruct the previous
working environment in full, not just execute the commands in the
logfile.
.br
.sh 1
When a session is restored, logging is automatically turned on again
with the name of the logfile it was invoked with (it is read from the
log header). So once you've turned logging on for a session, you can
quit IPython and reload it as many times as you want and it will
continue to log its history and restore from the beginning every time.
.br
.sp 1
Caveats: there are limitations in this option. The history variables
_i*,_* and _dh don't get restored properly. In the future we will try
to implement full session saving by writing and retrieving a
'snapshot' of the memory state of IPython. But our first attempts
failed because of inherent limitations of Python's Pickle module, so
this may have to wait.
.TP
.B \-[no]messages
Print messages which IPython collects about its startup process
(default on).
.TP
.B \-[no]pdb
Automatically call the pdb debugger after every uncaught exception. If
you are used to debugging using pdb, this puts you automatically
inside of it after any call (either in IPython or in code called by
it) which triggers an exception which goes uncaught.
.TP
.B \-[no]pprint
IPython can optionally use the pprint (pretty printer) module for
displaying results. pprint tends to give a nicer display of nested
data structures. If you like it, you can turn it on permanently in
your config file (default off).
.TP
.B \-profile|p <name>
Assume that your config file is ipythonrc-<name> (looks in current dir
first, then in IPYTHONDIR). This is a quick way to keep and load
multiple config files for different tasks, especially if you use the
include option of config files. You can keep a basic
IPYTHONDIR/ipythonrc file and then have other 'profiles' which include
this one and load extra things for particular tasks. For example:
.br
.sp 1
1) $HOME/.ipython/ipythonrc : load basic things you always want.
.br
2) $HOME/.ipython/ipythonrc-math : load (1) and basic math-related
modules.
.br
3) $HOME/.ipython/ipythonrc-numeric : load (1) and Numeric and
plotting modules.
.br
.sp 1
Since it is possible to create an endless loop by having circular file
inclusions, IPython will stop if it reaches 15 recursive inclusions.
.TP
.B \-prompt_in1|pi1 <string>
Specify the string used for input prompts. Note that if you are using
numbered prompts, the number is represented with a '\\#' in the
string. Don't forget to quote strings with spaces embedded in
them. Default: 'In [\\#]:'.
.br
.sp 1
Most bash-like escapes can be used to customize IPython's prompts, as well as
a few additional ones which are IPython-specific. All valid prompt escapes
are described in detail in the Customization section of the IPython HTML/PDF
manual.
.TP
.B \-prompt_in2|pi2 <string>
Similar to the previous option, but used for the continuation prompts. The
special sequence '\\D' is similar to '\\#', but with all digits replaced dots
(so you can have your continuation prompt aligned with your input
prompt). Default: ' .\\D.:' (note three spaces at the start for alignment
with 'In [\\#]').
.TP
.B \-prompt_out|po <string>
String used for output prompts, also uses numbers like prompt_in1.
Default: 'Out[\\#]:'.
.TP
.B \-quick
Start in bare bones mode (no config file loaded).
.TP
.B \-rcfile <name>
Name of your IPython resource configuration file. normally IPython
loads ipythonrc (from current directory) or IPYTHONDIR/ipythonrc. If
the loading of your config file fails, IPython starts with a bare
bones configuration (no modules loaded at all).
.TP
.B \-[no]readline
Use the readline library, which is needed to support name completion
and command history, among other things. It is enabled by default, but
may cause problems for users of X/Emacs in Python comint or shell
buffers.
.br
.sp 1
Note that emacs 'eterm' buffers (opened with M-x term) support
IPython's readline and syntax coloring fine, only 'emacs' (M-x shell
and C-c !) buffers do not.
.TP
.B \-screen_length|sl <n>
Number of lines of your screen. This is used to control printing of
very long strings. Strings longer than this number of lines will be
sent through a pager instead of directly printed.
.br
.sp 1
The default value for this is 0, which means IPython will auto-detect
your screen size every time it needs to print certain potentially long
strings (this doesn't change the behavior of the 'print' keyword, it's
only triggered internally). If for some reason this isn't working well
(it needs curses support), specify it yourself. Otherwise don't change
the default.
.TP
.B \-separate_in|si <string>
Separator before input prompts. Default '\n'.
.TP
.B \-separate_out|so <string>
Separator before output prompts. Default: 0 (nothing).
.TP
.B \-separate_out2|so2 <string>
Separator after output prompts. Default: 0 (nothing).
.TP
.B \-nosep
Shorthand for '\-separate_in 0 \-separate_out 0 \-separate_out2 0'.
Simply removes all input/output separators.
.TP
.B \-upgrade
Allows you to upgrade your IPYTHONDIR configuration when you install a
new version of IPython. Since new versions may include new command
lines options or example files, this copies updated ipythonrc-type
files. However, it backs up (with a .old extension) all files which
it overwrites so that you can merge back any custimizations you might
have in your personal files.
.TP
.B \-Version
Print version information and exit.
.TP
.B \-xmode <modename>
Mode for exception reporting. The valid modes are Plain, Context, and
Verbose.
.br
.sp 1
\- Plain: similar to python's normal traceback printing.
.br
.sp 1
\- Context: prints 5 lines of context source code around each line in the
traceback.
.br
.sp 1
\- Verbose: similar to Context, but additionally prints the variables
currently visible where the exception happened (shortening their strings if
too long). This can potentially be very slow, if you happen to have a huge
data structure whose string representation is complex to compute. Your
computer may appear to freeze for a while with cpu usage at 100%. If this
occurs, you can cancel the traceback with Ctrl-C (maybe hitting it more than
once).
.
.SH EMBEDDING
It is possible to start an IPython instance inside your own Python
programs. In the documentation example files there are some
illustrations on how to do this.
.br
.sp 1
This feature allows you to evalutate dynamically the state of your
code, operate with your variables, analyze them, etc. Note however
that any changes you make to values while in the shell do NOT
propagate back to the running code, so it is safe to modify your
values because you won't break your code in bizarre ways by doing so.
.SH AUTHOR
IPython was written by Fernando Perez <fperez@colorado.edu>, based on earlier
code by Janko Hauser <jh@comunit.de> and Nathaniel Gray
<n8gray@caltech.edu>. This manual page was written by Jack Moffitt
<jack@xiph.org>, for the Debian project (but may be used by others).