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