| Éric Araujo | 79c9d4f | 2011-09-09 19:20:27 +0200 | [diff] [blame^] | 1 | .. highlightlang:: sh | 
| Georg Brandl | d95a1ee | 2007-12-04 16:10:02 +0000 | [diff] [blame] | 2 |  | 
| Georg Brandl | 21c6665 | 2007-12-04 16:50:28 +0000 | [diff] [blame] | 3 | .. _using-on-unix: | 
| Georg Brandl | d95a1ee | 2007-12-04 16:10:02 +0000 | [diff] [blame] | 4 |  | 
|  | 5 | ******************************** | 
|  | 6 | Using Python on Unix platforms | 
|  | 7 | ******************************** | 
|  | 8 |  | 
|  | 9 | .. sectionauthor:: Shriphani Palakodety | 
|  | 10 |  | 
|  | 11 |  | 
|  | 12 | Getting and installing the latest version of Python | 
|  | 13 | =================================================== | 
|  | 14 |  | 
|  | 15 | On Linux | 
|  | 16 | -------- | 
|  | 17 |  | 
|  | 18 | Python comes preinstalled on most Linux distributions, and is available as a | 
|  | 19 | package on all others.  However there are certain features you might want to use | 
|  | 20 | that are not available on your distro's package.  You can easily compile the | 
|  | 21 | latest version of Python from source. | 
| Georg Brandl | c62ef8b | 2009-01-03 20:55:06 +0000 | [diff] [blame] | 22 |  | 
| Georg Brandl | 3ef2063 | 2008-02-26 19:13:45 +0000 | [diff] [blame] | 23 | In the event that Python doesn't come preinstalled and isn't in the repositories as | 
| Georg Brandl | d95a1ee | 2007-12-04 16:10:02 +0000 | [diff] [blame] | 24 | well, you can easily make packages for your own distro.  Have a look at the | 
|  | 25 | following links: | 
|  | 26 |  | 
|  | 27 | .. seealso:: | 
|  | 28 |  | 
|  | 29 | http://www.linux.com/articles/60383 | 
|  | 30 | for Debian users | 
|  | 31 | http://linuxmafia.com/pub/linux/suse-linux-internals/chapter35.html | 
|  | 32 | for OpenSuse users | 
|  | 33 | http://docs.fedoraproject.org/drafts/rpm-guide-en/ch-creating-rpms.html | 
|  | 34 | for Fedora users | 
|  | 35 | http://www.slackbook.org/html/package-management-making-packages.html | 
|  | 36 | for Slackware users | 
|  | 37 |  | 
|  | 38 |  | 
|  | 39 | On FreeBSD and OpenBSD | 
|  | 40 | ---------------------- | 
|  | 41 |  | 
|  | 42 | * FreeBSD users, to add the package use:: | 
|  | 43 |  | 
|  | 44 | pkg_add -r python | 
|  | 45 |  | 
|  | 46 | * OpenBSD users use:: | 
|  | 47 |  | 
| Georg Brandl | c62ef8b | 2009-01-03 20:55:06 +0000 | [diff] [blame] | 48 | pkg_add ftp://ftp.openbsd.org/pub/OpenBSD/4.2/packages/<insert your architecture here>/python-<version>.tgz | 
|  | 49 |  | 
| Georg Brandl | d95a1ee | 2007-12-04 16:10:02 +0000 | [diff] [blame] | 50 | For example i386 users get the 2.5.1 version of Python using:: | 
|  | 51 |  | 
|  | 52 | pkg_add ftp://ftp.openbsd.org/pub/OpenBSD/4.2/packages/i386/python-2.5.1p2.tgz | 
|  | 53 |  | 
|  | 54 |  | 
|  | 55 | On OpenSolaris | 
|  | 56 | -------------- | 
|  | 57 |  | 
| Éric Araujo | 79c9d4f | 2011-09-09 19:20:27 +0200 | [diff] [blame^] | 58 | To install the newest Python versions on OpenSolaris, install `blastwave | 
|  | 59 | <http://www.blastwave.org/howto.html>`_ and type ``pkg_get -i python`` at the | 
| Georg Brandl | d95a1ee | 2007-12-04 16:10:02 +0000 | [diff] [blame] | 60 | prompt. | 
|  | 61 |  | 
|  | 62 |  | 
|  | 63 | Building Python | 
|  | 64 | =============== | 
|  | 65 |  | 
|  | 66 | If you want to compile CPython yourself, first thing you should do is get the | 
|  | 67 | `source <http://python.org/download/source/>`_. You can download either the | 
| Éric Araujo | 79c9d4f | 2011-09-09 19:20:27 +0200 | [diff] [blame^] | 68 | latest release's source or just grab a fresh `clone | 
|  | 69 | <http://docs.python.org/devguide/setup#getting-the-source-code>`_.  (If you want | 
|  | 70 | to contribute patches, you will need a clone.) | 
| Georg Brandl | d95a1ee | 2007-12-04 16:10:02 +0000 | [diff] [blame] | 71 |  | 
| Éric Araujo | 79c9d4f | 2011-09-09 19:20:27 +0200 | [diff] [blame^] | 72 | The build process consists in the usual :: | 
| Georg Brandl | d95a1ee | 2007-12-04 16:10:02 +0000 | [diff] [blame] | 73 |  | 
|  | 74 | ./configure | 
|  | 75 | make | 
|  | 76 | make install | 
|  | 77 |  | 
|  | 78 | invocations. Configuration options and caveats for specific Unix platforms are | 
| Éric Araujo | 79c9d4f | 2011-09-09 19:20:27 +0200 | [diff] [blame^] | 79 | extensively documented in the :source:`README` file in the root of the Python | 
| Georg Brandl | d95a1ee | 2007-12-04 16:10:02 +0000 | [diff] [blame] | 80 | source tree. | 
|  | 81 |  | 
| Christian Heimes | 1206a22 | 2007-12-04 16:36:20 +0000 | [diff] [blame] | 82 | .. warning:: | 
| Georg Brandl | 21c6665 | 2007-12-04 16:50:28 +0000 | [diff] [blame] | 83 |  | 
|  | 84 | ``make install`` can overwrite or masquerade the :file:`python` binary. | 
|  | 85 | ``make altinstall`` is therefore recommended instead of ``make install`` | 
|  | 86 | since it only installs :file:`{exec_prefix}/bin/python{version}`. | 
| Christian Heimes | 1206a22 | 2007-12-04 16:36:20 +0000 | [diff] [blame] | 87 |  | 
| Georg Brandl | d95a1ee | 2007-12-04 16:10:02 +0000 | [diff] [blame] | 88 |  | 
|  | 89 | Python-related paths and files | 
|  | 90 | ============================== | 
| Georg Brandl | c62ef8b | 2009-01-03 20:55:06 +0000 | [diff] [blame] | 91 |  | 
| Georg Brandl | d95a1ee | 2007-12-04 16:10:02 +0000 | [diff] [blame] | 92 | These are subject to difference depending on local installation conventions; | 
|  | 93 | :envvar:`prefix` (``${prefix}``) and :envvar:`exec_prefix` (``${exec_prefix}``) | 
|  | 94 | are installation-dependent and should be interpreted as for GNU software; they | 
|  | 95 | may be the same. | 
|  | 96 |  | 
|  | 97 | For example, on most Linux systems, the default for both is :file:`/usr`. | 
|  | 98 |  | 
|  | 99 | +-----------------------------------------------+------------------------------------------+ | 
|  | 100 | | File/directory                                | Meaning                                  | | 
|  | 101 | +===============================================+==========================================+ | 
|  | 102 | | :file:`{exec_prefix}/bin/python`              | Recommended location of the interpreter. | | 
|  | 103 | +-----------------------------------------------+------------------------------------------+ | 
|  | 104 | | :file:`{prefix}/lib/python{version}`,         | Recommended locations of the directories | | 
|  | 105 | | :file:`{exec_prefix}/lib/python{version}`     | containing the standard modules.         | | 
|  | 106 | +-----------------------------------------------+------------------------------------------+ | 
|  | 107 | | :file:`{prefix}/include/python{version}`,     | Recommended locations of the directories | | 
|  | 108 | | :file:`{exec_prefix}/include/python{version}` | containing the include files needed for  | | 
|  | 109 | |                                               | developing Python extensions and         | | 
|  | 110 | |                                               | embedding the interpreter.               | | 
|  | 111 | +-----------------------------------------------+------------------------------------------+ | 
|  | 112 | | :file:`~/.pythonrc.py`                        | User-specific initialization file loaded | | 
|  | 113 | |                                               | by the user module; not used by default  | | 
|  | 114 | |                                               | or by most applications.                 | | 
|  | 115 | +-----------------------------------------------+------------------------------------------+ | 
| Georg Brandl | c62ef8b | 2009-01-03 20:55:06 +0000 | [diff] [blame] | 116 |  | 
| Georg Brandl | d95a1ee | 2007-12-04 16:10:02 +0000 | [diff] [blame] | 117 |  | 
|  | 118 | Miscellaneous | 
|  | 119 | ============= | 
|  | 120 |  | 
|  | 121 | To easily use Python scripts on Unix, you need to make them executable, | 
|  | 122 | e.g. with :: | 
|  | 123 |  | 
|  | 124 | $ chmod +x script | 
|  | 125 |  | 
|  | 126 | and put an appropriate Shebang line at the top of the script.  A good choice is | 
|  | 127 | usually :: | 
|  | 128 |  | 
|  | 129 | #!/usr/bin/env python | 
|  | 130 |  | 
|  | 131 | which searches for the Python interpreter in the whole :envvar:`PATH`.  However, | 
|  | 132 | some Unices may not have the :program:`env` command, so you may need to hardcode | 
|  | 133 | ``/usr/bin/python`` as the interpreter path. | 
|  | 134 |  | 
| Ezio Melotti | 062d2b5 | 2009-12-19 22:41:49 +0000 | [diff] [blame] | 135 | To use shell commands in your Python scripts, look at the :mod:`subprocess` module. | 
| Georg Brandl | d95a1ee | 2007-12-04 16:10:02 +0000 | [diff] [blame] | 136 |  | 
|  | 137 |  | 
|  | 138 | Editors | 
|  | 139 | ======= | 
|  | 140 |  | 
|  | 141 | Vim and Emacs are excellent editors which support Python very well.  For more | 
| Ezio Melotti | 062d2b5 | 2009-12-19 22:41:49 +0000 | [diff] [blame] | 142 | information on how to code in Python in these editors, look at: | 
| Georg Brandl | d95a1ee | 2007-12-04 16:10:02 +0000 | [diff] [blame] | 143 |  | 
| Georg Brandl | 1966a23 | 2008-12-23 15:44:25 +0000 | [diff] [blame] | 144 | * http://www.vim.org/scripts/script.php?script_id=790 | 
|  | 145 | * http://sourceforge.net/projects/python-mode | 
| Georg Brandl | d95a1ee | 2007-12-04 16:10:02 +0000 | [diff] [blame] | 146 |  | 
|  | 147 | Geany is an excellent IDE with support for a lot of languages. For more | 
|  | 148 | information, read: http://geany.uvena.de/ | 
|  | 149 |  | 
|  | 150 | Komodo edit is another extremely good IDE.  It also has support for a lot of | 
|  | 151 | languages. For more information, read: | 
|  | 152 | http://www.activestate.com/store/productdetail.aspx?prdGuid=20f4ed15-6684-4118-a78b-d37ff4058c5f |