##// END OF EJS Templates
Update docs with Tornado info.
Fernando Perez -
Show More
@@ -1,397 +1,403 b''
1 1 Overview
2 2 ========
3 3
4 4 This document describes the steps required to install IPython. IPython is
5 5 organized into a number of subpackages, each of which has its own dependencies.
6 6 All of the subpackages come with IPython, so you don't need to download and
7 7 install them separately. However, to use a given subpackage, you will need to
8 8 install all of its dependencies.
9 9
10 10
11 11 Please let us know if you have problems installing IPython or any of its
12 12 dependencies. Officially, IPython requires Python version 2.6 or 2.7. There
13 13 is an experimental port of IPython for Python3 `on GitHub
14 14 <https://github.com/ipython/ipython-py3k>`_
15 15
16 16 .. warning::
17 17
18 18 Officially, IPython supports Python versions 2.6 and 2.7.
19 19
20 20 IPython 0.11 has a hard syntax dependency on 2.6, and will no longer work
21 21 on Python <= 2.5.
22 22
23 23 Some of the installation approaches use the :mod:`setuptools` package and its
24 24 :command:`easy_install` command line program. In many scenarios, this provides
25 25 the most simple method of installing IPython and its dependencies. It is not
26 26 required though. More information about :mod:`setuptools` can be found on its
27 27 website.
28 28
29 29 .. note::
30 30
31 31 On Windows, IPython *does* depend on :mod:`setuptools`, and it is recommended
32 32 that you install the :mod:`distribute` package, which improves
33 33 :mod:`setuptools` and fixes various bugs.
34 34
35 35 We hope to remove this dependency in 0.12.
36 36
37 37 More general information about installing Python packages can be found in
38 38 Python's documentation at http://www.python.org/doc/.
39 39
40 40 Quickstart
41 41 ==========
42 42
43 43 If you have :mod:`setuptools` installed and you are on OS X or Linux (not
44 44 Windows), the following will download and install IPython *and* the main
45 45 optional dependencies:
46 46
47 47 .. code-block:: bash
48 48
49 49 $ easy_install ipython[zmq,test]
50 50
51 51 This will get pyzmq, which is needed for
52 52 IPython's parallel computing features as well as the nose package, which will
53 53 enable you to run IPython's test suite.
54 54
55 55 To run IPython's test suite, use the :command:`iptest` command:
56 56
57 57 .. code-block:: bash
58 58
59 59 $ iptest
60 60
61 61 Read on for more specific details and instructions for Windows.
62 62
63 63 Installing IPython itself
64 64 =========================
65 65
66 66 Given a properly built Python, the basic interactive IPython shell will work
67 67 with no external dependencies. However, some Python distributions
68 68 (particularly on Windows and OS X), don't come with a working :mod:`readline`
69 69 module. The IPython shell will work without :mod:`readline`, but will lack
70 70 many features that users depend on, such as tab completion and command line
71 71 editing. If you install IPython with :mod:`setuptools`, (e.g. with `easy_install`),
72 72 then the appropriate :mod:`readline` for your platform will be installed.
73 73 See below for details of how to make sure you have a working :mod:`readline`.
74 74
75 75 Installation using easy_install
76 76 -------------------------------
77 77
78 78 If you have :mod:`setuptools` installed, the easiest way of getting IPython is
79 79 to simple use :command:`easy_install`:
80 80
81 81 .. code-block:: bash
82 82
83 83 $ easy_install ipython
84 84
85 85 That's it.
86 86
87 87 Installation from source
88 88 ------------------------
89 89
90 90 If you don't want to use :command:`easy_install`, or don't have it installed,
91 91 just grab the latest stable build of IPython from `here
92 92 <https://github.com/ipython/ipython/downloads>`_. Then do the following:
93 93
94 94 .. code-block:: bash
95 95
96 96 $ tar -xzf ipython.tar.gz
97 97 $ cd ipython
98 98 $ python setup.py install
99 99
100 100 If you are installing to a location (like ``/usr/local``) that requires higher
101 101 permissions, you may need to run the last command with :command:`sudo`.
102 102
103 103 Windows
104 104 -------
105 105
106 106 .. note::
107 107
108 108 On Windows, IPython requires :mod:`setuptools` or :mod:`distribute`.
109 109
110 110 We hope to remove this dependency in 0.12.
111 111
112 112 There are a few caveats for Windows users. The main issue is that a basic
113 113 ``python setup.py install`` approach won't create ``.bat`` file or Start Menu
114 114 shortcuts, which most users want. To get an installation with these, you can
115 115 use any of the following alternatives:
116 116
117 117 1. Install using :command:`easy_install`.
118 118
119 119 2. Install using our binary ``.exe`` Windows installer, which can be found
120 120 `here <http://ipython.scipy.org/dist/>`_
121 121
122 122 3. Install from source, but using :mod:`setuptools` (``python setupegg.py
123 123 install``).
124 124
125 125 IPython by default runs in a terminal window, but the normal terminal
126 126 application supplied by Microsoft Windows is very primitive. You may want to
127 127 download the excellent and free Console_ application instead, which is a far
128 128 superior tool. You can even configure Console to give you by default an
129 129 IPython tab, which is very convenient to create new IPython sessions directly
130 130 from the working terminal.
131 131
132 132 .. _Console: http://sourceforge.net/projects/console
133 133
134 134 Note for Windows 64 bit users: you may have difficulties with the stock
135 135 installer on 64 bit systems; in this case (since we currently do not have 64
136 136 bit builds of the Windows installer) your best bet is to install from source
137 137 with the setuptools method indicated in #3 above. See `this bug report`_ for
138 138 further details.
139 139
140 140 .. _this bug report: https://bugs.launchpad.net/ipython/+bug/382214
141 141
142 142
143 143 Installing the development version
144 144 ----------------------------------
145 145
146 146 It is also possible to install the development version of IPython from our
147 147 `Git <http://git-scm.com/>`_ source code repository. To do this you will
148 148 need to have Git installed on your system. Then just do:
149 149
150 150 .. code-block:: bash
151 151
152 152 $ git clone https://github.com/ipython/ipython.git
153 153 $ cd ipython
154 154 $ python setup.py install
155 155
156 156 Again, this last step on Windows won't create ``.bat`` files or Start Menu
157 157 shortcuts, so you will have to use one of the other approaches listed above.
158 158
159 159 Some users want to be able to follow the development branch as it changes. If
160 160 you have :mod:`setuptools` installed, this is easy. Simply replace the last
161 161 step by:
162 162
163 163 .. code-block:: bash
164 164
165 165 $ python setupegg.py develop
166 166
167 167 This creates links in the right places and installs the command line script to
168 168 the appropriate places. Then, if you want to update your IPython at any time,
169 169 just do:
170 170
171 171 .. code-block:: bash
172 172
173 173 $ git pull
174 174
175 175 Basic optional dependencies
176 176 ===========================
177 177
178 178 There are a number of basic optional dependencies that most users will want to
179 179 get. These are:
180 180
181 181 * readline (for command line editing, tab completion, etc.)
182 182 * nose (to run the IPython test suite)
183 183 * pexpect (to use things like irunner)
184 184
185 185 If you are comfortable installing these things yourself, have at it, otherwise
186 186 read on for more details.
187 187
188 188 readline
189 189 --------
190 190
191 191 In principle, all Python distributions should come with a working
192 192 :mod:`readline` module. But, reality is not quite that simple. There are two
193 193 common situations where you won't have a working :mod:`readline` module:
194 194
195 195 * If you are using the built-in Python on Mac OS X.
196 196
197 197 * If you are running Windows, which doesn't have a :mod:`readline` module.
198 198
199 199 When IPython is installed with :mod:`setuptools`, (e.g. with `easy_install`),
200 200 readline is added as a dependency on OS X, and PyReadline on Windows, and will
201 201 be installed on your system. However, if you do not use setuptools, you may
202 202 have to install one of these packages yourself.
203 203
204 204 On OS X, the built-in Python doesn't not have :mod:`readline` because of
205 205 license issues. Starting with OS X 10.5 (Leopard), Apple's built-in Python has
206 206 a BSD-licensed not-quite-compatible readline replacement. As of IPython 0.9,
207 207 many of the issues related to the differences between readline and libedit seem
208 208 to have been resolved. While you may find libedit sufficient, we have
209 209 occasional reports of bugs with it and several developers who use OS X as their
210 210 main environment consider libedit unacceptable for productive, regular use with
211 211 IPython.
212 212
213 213 Therefore, we *strongly* recommend that on OS X you get the full
214 214 :mod:`readline` module. We will *not* consider completion/history problems to
215 215 be bugs for IPython if you are using libedit.
216 216
217 217 To get a working :mod:`readline` module, just do (with :mod:`setuptools`
218 218 installed):
219 219
220 220 .. code-block:: bash
221 221
222 222 $ easy_install readline
223 223
224 224 .. note::
225 225
226 226 Other Python distributions on OS X (such as fink, MacPorts and the official
227 227 python.org binaries) already have readline installed so you likely don't
228 228 have to do this step.
229 229
230 230 If needed, the readline egg can be build and installed from source (see the
231 231 wiki page at http://ipython.scipy.org/moin/InstallationOSXLeopard).
232 232
233 233 On Windows, you will need the PyReadline module. PyReadline is a separate,
234 234 Windows only implementation of readline that uses native Windows calls through
235 235 :mod:`ctypes`. The easiest way of installing PyReadline is you use the binary
236 236 installer available `here <https://launchpad.net/pyreadline/+download>`_.
237 237
238 238 nose
239 239 ----
240 240
241 241 To run the IPython test suite you will need the :mod:`nose` package. Nose
242 242 provides a great way of sniffing out and running all of the IPython tests. The
243 243 simplest way of getting nose, is to use :command:`easy_install`:
244 244
245 245 .. code-block:: bash
246 246
247 247 $ easy_install nose
248 248
249 249 Another way of getting this is to do:
250 250
251 251 .. code-block:: bash
252 252
253 253 $ easy_install ipython[test]
254 254
255 255 For more installation options, see the `nose website
256 256 <http://somethingaboutorange.com/mrl/projects/nose/>`_.
257 257
258 258 Once you have nose installed, you can run IPython's test suite using the
259 259 iptest command:
260 260
261 261 .. code-block:: bash
262 262
263 263 $ iptest
264 264
265 265 pexpect
266 266 -------
267 267
268 The pexpect package is used in IPython's :command:`irunner` script, as well as
269 for managing subprocesses [pexpect]_. IPython now includes a version of pexpect
270 in :mod:`IPython.external`, but if you have installed pexpect, IPython will use
268 The pexpect_ package is used in IPython's :command:`irunner` script, as well as
269 for managing subprocesses. IPython now includes a version of pexpect in
270 :mod:`IPython.external`, but if you have installed pexpect, IPython will use
271 271 that instead. On Unix platforms (including OS X), just do:
272 272
273 273 .. code-block:: bash
274 274
275 275 $ easy_install pexpect
276 276
277 277 Windows users are out of luck as pexpect does not run there.
278 278
279 279 Dependencies for IPython.parallel (parallel computing)
280 280 ======================================================
281 281
282 282 :mod:`IPython.kernel` has been replaced by :mod:`IPython.parallel`,
283 283 which uses ZeroMQ for all communication.
284 284
285 285 IPython.parallel provides a nice architecture for parallel computing. The
286 286 main focus of this architecture is on interactive parallel computing. These
287 287 features require just one package: PyZMQ. See the next section for PyZMQ
288 288 details.
289 289
290 290 On a Unix style platform (including OS X), if you want to use
291 291 :mod:`setuptools`, you can just do:
292 292
293 293 .. code-block:: bash
294 294
295 295 $ easy_install ipython[zmq] # will include pyzmq
296 296
297 297 Security in IPython.parallel is provided by SSH tunnels. By default, Linux
298 298 and OSX clients will use the shell ssh command, but on Windows, we also
299 support tunneling with paramiko [paramiko]_.
299 support tunneling with paramiko_.
300 300
301 301 Dependencies for IPython.zmq
302 302 ============================
303 303
304 304 pyzmq
305 305 -----
306 306
307 307 IPython 0.11 introduced some new functionality, including a two-process
308 execution model using ZeroMQ for communication [ZeroMQ]_. The Python bindings
309 to ZeroMQ are found in the pyzmq project [PyZMQ]_, which is easy_install-able once you
310 have ZeroMQ installed. If you are on Python 2.6 or 2.7 on OSX, or 2.7 on Windows,
308 execution model using ZeroMQ_ for communication. The Python bindings to ZeroMQ
309 are found in the PyZMQ_ project, which is easy_install-able once you have
310 ZeroMQ installed. If you are on Python 2.6 or 2.7 on OSX, or 2.7 on Windows,
311 311 pyzmq has eggs that include ZeroMQ itself.
312 312
313 313 IPython.zmq depends on pyzmq >= 2.1.4.
314 314
315 315 Dependencies for the IPython QT console
316 316 =======================================
317 317
318 318 pyzmq
319 319 -----
320 320
321 Like the :mod:`IPython.parallel` package,
322 the QT Console requires ZeroMQ and PyZMQ.
321 Like the :mod:`IPython.parallel` package, the QT Console requires ZeroMQ and
322 PyZMQ.
323 323
324 324 Qt
325 325 --
326 326
327 Also with 0.11, a new GUI was added using the work in :mod:`IPython.zmq`,
328 which can be launched with ``ipython qtconsole``. The GUI is built on Qt, and works
329 with either PyQt, which can be installed from the
330 `PyQt website <http://www.riverbankcomputing.co.uk/>`_, or
331 `PySide <http://www.pyside.org/>`_, from Nokia.
327 Also with 0.11, a new GUI was added using the work in :mod:`IPython.zmq`, which
328 can be launched with ``ipython qtconsole``. The GUI is built on Qt, and works
329 with either PyQt, which can be installed from the `PyQt website
330 <http://www.riverbankcomputing.co.uk/>`_, or `PySide
331 <http://www.pyside.org/>`_, from Nokia.
332 332
333 333 pygments
334 334 --------
335 335
336 The syntax-highlighting in ``ipython qtconsole`` is done with the pygments project,
337 which is easy_install-able [pygments]_.
336 The syntax-highlighting in ``ipython qtconsole`` is done with the pygments_
337 project, which is easy_install-able.
338
338 339
339 340 Dependencies for the IPython HTML notebook
340 341 ==========================================
341 342
342 343 The IPython notebook is a notebook-style web interface to IPython and can be
343 344 started withe command ``ipython notebook``.
344 345
345 346 pyzmq
346 347 -----
347 348
348 349 Like the :mod:`IPython.parallel` and :mod:`IPython.frontend.qt.console` packages,
349 350 the HTML notebook requires ZeroMQ and PyZMQ.
350 351
351 352 Tornado
352 353 -------
353 354
354 The IPython notebook uses the Tornado project [Tornado]_ for its HTTP server and requires
355 version 2.0 or greater. Tornado can be installed with ``easy_install tornado``.
355 The IPython notebook uses the Tornado_ project for its HTTP server. As of this
356 writing, we require a development version from github, as version 2.0 is *not
357 sufficient*. You can either clone their git repository yourself and install it
358 manually, or install directly from github with::
359
360 easy_install https://github.com/facebook/tornado/tarball/master
361
356 362
357 363 MathJax
358 364 -------
359 365
360 The IPython notebook uses the MathJax [MathJax]_ Javascript library for rendering LaTeX
361 in web browsers. Because MathJax is large, we don't include it with IPython. Normally
362 IPython will load MathJax from a CDN, but if you have a slow network connection, or
363 want to use LaTeX without an internet connection at all, we do
364 include a utility to aid in downloading MathJax and installing it into the proper location::
366 The IPython notebook uses the MathJax_ Javascript library for rendering LaTeX
367 in web browsers. Because MathJax is large, we don't include it with
368 IPython. Normally IPython will load MathJax from a CDN, but if you have a slow
369 network connection, or want to use LaTeX without an internet connection at all,
370 we do include a utility to aid in downloading MathJax and installing it into
371 the proper location::
365 372
366 373 from IPython.external.mathjax import install_mathjax
367 374 install_mathjax()
368 375
369 376 This function does require write access to the IPython install directory, so if you
370 377 have a system-wide Python install, it may need to be done from a ``sudo python`` session.
371 378
372 379 Browser Compatibility
373 380 ---------------------
374 381
375 382 The notebook uses WebSockets and the flexible box model. These features are
376 383 available in the following browsers:
377 384
378 385 * Chrome.
379 386 * Safari.
380 387 * Firefox 4 and 5. These browsers have WebSocket support, but it is disabled by
381 388 default. You can enable it by entering ``about:config`` in the URL bar and then
382 389 setting ``network.websocket.enabled`` and ``network.websocket.override-security-block``
383 390 to ``true``.
384 391 * Firefox 6. Starting with version 6, Firefox has WebSocket support enabled by default.
385 392
386 393 Internet Explorer 9 does not support WebSockets or the flexible box model, but
387 394 these features should appear in Internet Explorer 10.
388 395
389 396
390 .. [ZeroMQ] ZeroMQ. http://www.zeromq.org
391 .. [PyZMQ] PyZMQ. https://github.com/zeromq/pyzmq
392 .. [paramiko] paramiko. https://github.com/robey/paramiko
393 .. [pygments] Pygments syntax highlighting. http://pygments.org
394 .. [pexpect] Pexpect. http://www.noah.org/wiki/Pexpect
395 .. [Tornado] Tornado. http://www.tornadoweb.org/
396 .. [MathJax] MathJax. http://www.mathjax.org/
397
397 .. _ZeroMQ: http://www.zeromq.org
398 .. _PyZMQ: https://github.com/zeromq/pyzmq
399 .. _paramiko: https://github.com/robey/paramiko
400 .. _pygments: http://pygments.org
401 .. _pexpect: http://www.noah.org/wiki/Pexpect
402 .. _Tornado: http://www.tornadoweb.org
403 .. _MathJax: http://www.mathjax.org
General Comments 0
You need to be logged in to leave comments. Login now