##// END OF EJS Templates
document ipython and ipykernel global configuration
Matthias Bussonnier -
Show More
@@ -1,165 +1,233 b''
1 =====================================
1 =====================================
2 Introduction to IPython configuration
2 Introduction to IPython configuration
3 =====================================
3 =====================================
4
4
5 .. _setting_config:
5 .. _setting_config:
6
6
7 Setting configurable options
7 Setting configurable options
8 ============================
8 ============================
9
9
10 Many of IPython's classes have configurable attributes (see
10 Many of IPython's classes have configurable attributes (see
11 :doc:`options/index` for the list). These can be
11 :doc:`options/index` for the list). These can be
12 configured in several ways.
12 configured in several ways.
13
13
14 Python config files
14 Python config files
15 -------------------
15 -------------------
16
16
17 To create the blank config files, run::
17 To create the blank config files, run::
18
18
19 ipython profile create [profilename]
19 ipython profile create [profilename]
20
20
21 If you leave out the profile name, the files will be created for the
21 If you leave out the profile name, the files will be created for the
22 ``default`` profile (see :ref:`profiles`). These will typically be
22 ``default`` profile (see :ref:`profiles`). These will typically be located in
23 located in :file:`~/.ipython/profile_default/`, and will be named
23 :file:`~/.ipython/profile_default/`, and will be named
24 :file:`ipython_config.py`, :file:`ipython_notebook_config.py`, etc.
24 :file:`ipython_config.py`, for hitorical reasons you may also find fiels
25 The settings in :file:`ipython_config.py` apply to all IPython commands.
25 named with IPytho nprefix instead of Jupyter:
26 :file:`ipython_notebook_config.py`, etc. The settings in
27 :file:`ipython_config.py` apply to all IPython commands.
26
28
27 The files typically start by getting the root config object::
29 by default, configuration files are fully featured Python scripts that can
28
30 execute arbitrary code, the main usage is to set value on the config object
29 c = get_config()
31 ``c`` which exist in your configuration file.
30
32
31 You can then configure class attributes like this::
33 You can then configure class attributes like this::
32
34
33 c.InteractiveShell.automagic = False
35 c.InteractiveShell.automagic = False
34
36
35 Be careful with spelling--incorrect names will simply be ignored, with
37 Be careful with spelling--incorrect names will simply be ignored, with
36 no error.
38 no error.
37
39
38 To add to a collection which may have already been defined elsewhere,
40 To add to a collection which may have already been defined elsewhere or have
39 you can use methods like those found on lists, dicts and sets: append,
41 default values, you can use methods like those found on lists, dicts and
40 extend, :meth:`~traitlets.config.LazyConfigValue.prepend` (like
42 sets: append, extend, :meth:`~traitlets.config.LazyConfigValue.prepend` (like
41 extend, but at the front), add and update (which works both for dicts
43 extend, but at the front), add and update (which works both for dicts and
42 and sets)::
44 sets)::
43
45
44 c.InteractiveShellApp.extensions.append('Cython')
46 c.InteractiveShellApp.extensions.append('Cython')
45
47
46 .. versionadded:: 2.0
48 .. versionadded:: 2.0
47 list, dict and set methods for config values
49 list, dict and set methods for config values
48
50
49 Example config file
51 Example config file
50 ```````````````````
52 ```````````````````
51
53
52 ::
54 ::
53
55
54 # sample ipython_config.py
56 # sample ipython_config.py
55 c = get_config()
56
57
57 c.TerminalIPythonApp.display_banner = True
58 c.TerminalIPythonApp.display_banner = True
58 c.InteractiveShellApp.log_level = 20
59 c.InteractiveShellApp.log_level = 20
59 c.InteractiveShellApp.extensions = [
60 c.InteractiveShellApp.extensions = [
60 'myextension'
61 'myextension'
61 ]
62 ]
62 c.InteractiveShellApp.exec_lines = [
63 c.InteractiveShellApp.exec_lines = [
63 'import numpy',
64 'import numpy',
64 'import scipy'
65 'import scipy'
65 ]
66 ]
66 c.InteractiveShellApp.exec_files = [
67 c.InteractiveShellApp.exec_files = [
67 'mycode.py',
68 'mycode.py',
68 'fancy.ipy'
69 'fancy.ipy'
69 ]
70 ]
70 c.InteractiveShell.colors = 'LightBG'
71 c.InteractiveShell.colors = 'LightBG'
71 c.InteractiveShell.confirm_exit = False
72 c.InteractiveShell.confirm_exit = False
72 c.InteractiveShell.editor = 'nano'
73 c.InteractiveShell.editor = 'nano'
73 c.InteractiveShell.xmode = 'Context'
74 c.InteractiveShell.xmode = 'Context'
74
75
75 c.PrefilterManager.multi_line_specials = True
76 c.PrefilterManager.multi_line_specials = True
76
77
77 c.AliasManager.user_aliases = [
78 c.AliasManager.user_aliases = [
78 ('la', 'ls -al')
79 ('la', 'ls -al')
79 ]
80 ]
80
81
82 Json Configuration files
83 ------------------------
84
85 in case where executability of configuration can be problematic, or
86 configurations need to be modified programatically, IPython also support a
87 limited set of functionalities via ``.json`` config files.
88
89 You can defined most of the configuration options via a json object which
90 hierarchy represent the value you woudl normally set on the ``c`` object of
91 ``.py`` configuration files. The following ``ipython_config.json`` file::
92
93 {
94 "InteractiveShell": {
95 "colors": "LightBG",
96 "editor": "nano"
97 },
98 "InteractiveShellApp": {
99 "extensions": [
100 "myextension"
101 ]
102 }
103 }
104
105 Is equivalent to the following ``ipython_config.py``::
106
107 c.InteractiveShellApp.extensions = [
108 'myextension'
109 ]
110
111 c.InteractiveShell.colors = 'LightBG'
112 c.InteractiveShell.editor = 'nano'
113
81
114
82 Command line arguments
115 Command line arguments
83 ----------------------
116 ----------------------
84
117
85 Every configurable value can be set from the command line, using this
118 Every configurable value can be set from the command line, using this
86 syntax::
119 syntax::
87
120
88 ipython --ClassName.attribute=value
121 ipython --ClassName.attribute=value
89
122
90 Many frequently used options have short aliases and flags, such as
123 Many frequently used options have short aliases and flags, such as
91 ``--matplotlib`` (to integrate with a matplotlib GUI event loop) or
124 ``--matplotlib`` (to integrate with a matplotlib GUI event loop) or
92 ``--pdb`` (automatic post-mortem debugging of exceptions).
125 ``--pdb`` (automatic post-mortem debugging of exceptions).
93
126
94 To see all of these abbreviated options, run::
127 To see all of these abbreviated options, run::
95
128
96 ipython --help
129 ipython --help
97 ipython notebook --help
130 jupyter notebook --help
98 # etc.
131 # etc.
99
132
100 Options specified at the command line, in either format, override
133 Options specified at the command line, in either format, override
101 options set in a configuration file.
134 options set in a configuration file.
102
135
103 The config magic
136 The config magic
104 ----------------
137 ----------------
105
138
106 You can also modify config from inside IPython, using a magic command::
139 You can also modify config from inside IPython, using a magic command::
107
140
108 %config IPCompleter.greedy = True
141 %config IPCompleter.greedy = True
109
142
110 At present, this only affects the current session - changes you make to
143 At present, this only affects the current session - changes you make to
111 config are not saved anywhere. Also, some options are only read when
144 config are not saved anywhere. Also, some options are only read when
112 IPython starts, so they can't be changed like this.
145 IPython starts, so they can't be changed like this.
113
146
114 .. _configure_start_ipython:
147 .. _configure_start_ipython:
115
148
116 Running IPython from Python
149 Running IPython from Python
117 ----------------------------
150 ----------------------------
118
151
119 If you are using :ref:`embedding` to start IPython from a normal
152 If you are using :ref:`embedding` to start IPython from a normal
120 python file, you can set configuration options the same way as in a
153 python file, you can set configuration options the same way as in a
121 config file by creating a traitlets config object and passing it to
154 config file by creating a traitlets config object and passing it to
122 start_ipython like in the example below.
155 start_ipython like in the example below.
123
156
124 .. literalinclude:: ../../../examples/Embedding/start_ipython_config.py
157 .. literalinclude:: ../../../examples/Embedding/start_ipython_config.py
125 :language: python
158 :language: python
126
159
127 .. _profiles:
160 .. _profiles:
128
161
129 Profiles
162 Profiles
130 ========
163 ========
131
164
132 IPython can use multiple profiles, with separate configuration and
165 IPython can use multiple profiles, with separate configuration and
133 history. By default, if you don't specify a profile, IPython always runs
166 history. By default, if you don't specify a profile, IPython always runs
134 in the ``default`` profile. To use a new profile::
167 in the ``default`` profile. To use a new profile::
135
168
136 ipython profile create foo # create the profile foo
169 ipython profile create foo # create the profile foo
137 ipython --profile=foo # start IPython using the new profile
170 ipython --profile=foo # start IPython using the new profile
138
171
139 Profiles are typically stored in :ref:`ipythondir`, but you can also keep
172 Profiles are typically stored in :ref:`ipythondir`, but you can also keep
140 a profile in the current working directory, for example to distribute it
173 a profile in the current working directory, for example to distribute it
141 with a project. To find a profile directory on the filesystem::
174 with a project. To find a profile directory on the filesystem::
142
175
143 ipython locate profile foo
176 ipython locate profile foo
144
177
145 .. _ipythondir:
178 .. _ipythondir:
146
179
147 The IPython directory
180 The IPython directory
148 =====================
181 =====================
149
182
150 IPython stores its files---config, command history and extensions---in
183 IPython stores its files---config, command history and extensions---in
151 the directory :file:`~/.ipython/` by default.
184 the directory :file:`~/.ipython/` by default.
152
185
153 .. envvar:: IPYTHONDIR
186 .. envvar:: IPYTHONDIR
154
187
155 If set, this environment variable should be the path to a directory,
188 If set, this environment variable should be the path to a directory,
156 which IPython will use for user data. IPython will create it if it
189 which IPython will use for user data. IPython will create it if it
157 does not exist.
190 does not exist.
158
191
159 .. option:: --ipython-dir=<path>
192 .. option:: --ipython-dir=<path>
160
193
161 This command line option can also be used to override the default
194 This command line option can also be used to override the default
162 IPython directory.
195 IPython directory.
163
196
164 To see where IPython is looking for the IPython directory, use the command
197 To see where IPython is looking for the IPython directory, use the command
165 ``ipython locate``, or the Python function :func:`IPython.paths.get_ipython_dir`.
198 ``ipython locate``, or the Python function :func:`IPython.paths.get_ipython_dir`.
199
200
201 Systemwide configuration
202 ========================
203
204 It can be usefull to deploy systemwide ipython or ipykernel configuration
205 when managing environment for many users. At startup time IPython and
206 IPykernel will search for configuration file in multiple systemwide
207 locations, mainly:
208
209 - ``/etc/ipython/``
210 - ``/usr/local/etc/ipython/``
211
212 When the global install is a standalone python distribution it may also
213 search in distribution specific location, for example:
214
215 - ``$ANACONDA_LOCATION/etc/ipython/``
216
217 In those locations, Terminal IPython will look for a file called
218 ``ipython_config.py`` and ``ipython_config.json``, ipykernel will look for
219 ``ipython_kernel_config.py`` and ``ipython_kernel.json``.
220
221 Configuration files are loaded in order and merged with configuration on
222 later locatoin taking precedence on earlier locations (that is to say a user
223 can overwrite a systemwide configuration option).
224
225 You can see all locations in which IPython is looking for configuration files
226 by starting ipython in debug mode::
227
228 $ ipython --debug -c 'exit()'
229
230 Identically with ipykernel though the command is currently blocking until
231 this process is killed with ``Ctrl-\``::
232
233 $ python -m ipykernel --debug No newline at end of file
General Comments 0
You need to be logged in to leave comments. Login now