1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153
|
=====================================
Introduction to IPython configuration
=====================================
.. _setting_config:
Setting configurable options
============================
Many of IPython's classes have configurable attributes (see
:doc:`options/index` for the list). These can be
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,
extend, :meth:`~traitlets.config.LazyConfigValue.prepend` (like
extend, but at the front), add and update (which works both for dicts
and sets)::
c.InteractiveShellApp.extensions.append('Cython')
.. versionadded:: 2.0
list, dict and set methods for config values
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.PrefilterManager.multi_line_specials = True
c.AliasManager.user_aliases = [
('la', 'ls -al')
]
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.
Options specified at the command line, in either format, override
options set in a configuration file.
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
config are not saved anywhere. Also, some options are only read when
IPython starts, so they can't be changed like this.
.. _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.
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`.
|