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