intro.rst
158 lines
| 4.5 KiB
| text/x-rst
|
RstLexer
Thomas Kluyver
|
r13492 | ===================================== | ||
Introduction to IPython configuration | ||||
===================================== | ||||
Thomas Kluyver
|
r13503 | .. _setting_config: | ||
Thomas Kluyver
|
r13492 | |||
Setting configurable options | ||||
============================ | ||||
Thomas Kluyver
|
r13499 | Many of IPython's classes have configurable attributes (see | ||
:doc:`options/index` for the list). These can be | ||||
Thomas Kluyver
|
r13492 | configured in several ways. | ||
Python config files | ||||
------------------- | ||||
To create the blank config files, run:: | ||||
ipython profile create [profilename] | ||||
If you leave out the profile name, the files will be created for the | ||||
``default`` profile (see :ref:`profiles`). These will typically be | ||||
located in :file:`~/.ipython/profile_default/`, and will be named | ||||
:file:`ipython_config.py`, :file:`ipython_notebook_config.py`, etc. | ||||
The settings in :file:`ipython_config.py` apply to all IPython commands. | ||||
The files typically start by getting the root config object:: | ||||
c = get_config() | ||||
You can then configure class attributes like this:: | ||||
c.InteractiveShell.automagic = False | ||||
Be careful with spelling--incorrect names will simply be ignored, with | ||||
no error. | ||||
To add to a collection which may have already been defined elsewhere, | ||||
you can use methods like those found on lists, dicts and sets: append, | ||||
Thomas Kluyver
|
r21385 | extend, :meth:`~traitlets.config.LazyConfigValue.prepend` (like | ||
Thomas Kluyver
|
r13492 | extend, but at the front), add and update (which works both for dicts | ||
and sets):: | ||||
Matthias Bussonnier
|
r17915 | c.InteractiveShellApp.extensions.append('Cython') | ||
Thomas Kluyver
|
r13492 | |||
.. versionadded:: 2.0 | ||||
list, dict and set methods for config values | ||||
Thomas Kluyver
|
r13493 | Example config file | ||
``````````````````` | ||||
:: | ||||
# sample ipython_config.py | ||||
c = get_config() | ||||
c.TerminalIPythonApp.display_banner = True | ||||
c.InteractiveShellApp.log_level = 20 | ||||
c.InteractiveShellApp.extensions = [ | ||||
'myextension' | ||||
] | ||||
c.InteractiveShellApp.exec_lines = [ | ||||
'import numpy', | ||||
'import scipy' | ||||
] | ||||
c.InteractiveShellApp.exec_files = [ | ||||
'mycode.py', | ||||
'fancy.ipy' | ||||
] | ||||
c.InteractiveShell.autoindent = True | ||||
c.InteractiveShell.colors = 'LightBG' | ||||
c.InteractiveShell.confirm_exit = False | ||||
c.InteractiveShell.editor = 'nano' | ||||
c.InteractiveShell.xmode = 'Context' | ||||
c.PromptManager.in_template = 'In [\#]: ' | ||||
c.PromptManager.in2_template = ' .\D.: ' | ||||
c.PromptManager.out_template = 'Out[\#]: ' | ||||
c.PromptManager.justify = True | ||||
c.PrefilterManager.multi_line_specials = True | ||||
c.AliasManager.user_aliases = [ | ||||
('la', 'ls -al') | ||||
] | ||||
Thomas Kluyver
|
r13492 | Command line arguments | ||
---------------------- | ||||
Every configurable value can be set from the command line, using this | ||||
syntax:: | ||||
ipython --ClassName.attribute=value | ||||
Many frequently used options have short aliases and flags, such as | ||||
``--matplotlib`` (to integrate with a matplotlib GUI event loop) or | ||||
``--pdb`` (automatic post-mortem debugging of exceptions). | ||||
To see all of these abbreviated options, run:: | ||||
ipython --help | ||||
ipython notebook --help | ||||
# etc. | ||||
Thomas Kluyver
|
r13506 | Options specified at the command line, in either format, override | ||
options set in a configuration file. | ||||
Thomas Kluyver
|
r13492 | The config magic | ||
---------------- | ||||
You can also modify config from inside IPython, using a magic command:: | ||||
%config IPCompleter.greedy = True | ||||
At present, this only affects the current session - changes you make to | ||||
Thomas Kluyver
|
r13507 | config are not saved anywhere. Also, some options are only read when | ||
IPython starts, so they can't be changed like this. | ||||
Thomas Kluyver
|
r13492 | |||
.. _profiles: | ||||
Profiles | ||||
======== | ||||
IPython can use multiple profiles, with separate configuration and | ||||
history. By default, if you don't specify a profile, IPython always runs | ||||
in the ``default`` profile. To use a new profile:: | ||||
ipython profile create foo # create the profile foo | ||||
ipython --profile=foo # start IPython using the new profile | ||||
Profiles are typically stored in :ref:`ipythondir`, but you can also keep | ||||
a profile in the current working directory, for example to distribute it | ||||
with a project. To find a profile directory on the filesystem:: | ||||
ipython locate profile foo | ||||
.. _ipythondir: | ||||
The IPython directory | ||||
===================== | ||||
IPython stores its files---config, command history and extensions---in | ||||
the directory :file:`~/.ipython/` by default. | ||||
.. envvar:: IPYTHONDIR | ||||
If set, this environment variable should be the path to a directory, | ||||
which IPython will use for user data. IPython will create it if it | ||||
does not exist. | ||||
.. option:: --ipython-dir=<path> | ||||
This command line option can also be used to override the default | ||||
IPython directory. | ||||
Thomas Kluyver
|
r21388 | |||
To see where IPython is looking for the IPython directory, use the command | ||||
``ipython locate``, or the Python function :func:`IPython.paths.get_ipython_dir`. | ||||