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