.. _linux_install:
Linux
==========================
Here we provide further details for two methods of installing scientific Python on a linux
system. In this case you will *not* use a standalone Python distribution like Anaconda or
Enthought, but instead use the operating system installation of Python:
- System install in /usr/bin and /usr/lib where you have root privilege
- Non-root setup with an existing full-featured Python on the system
System install with root
------------------------
For a modern linux installation such as Ubuntu, the system Python version
will be 2.6 or newer and all of the required core packages are available as
package installs. The instructions below have been developed and tested with
Ubuntu 10. Corresponding packages for recent Fedora are probably available but
this has not been verified. In this case you will NOT use the Enthought Python
Distribution.
The benefit of using a root install via the system package manager is that it
is simple and all dependencies are managed for you. The downside is that the
package versions tend to be older and so you don't keep up with the latest
code development. In Ubuntu 10 the core packages (NumPy, Matplotlib) are a
year or so out of date. Unless you are really pushing for the latest features,
the older stable versions will work perfectly well.
Install the core packages for analysis with the following::
sudo apt-get install python-dev
sudo apt-get install ipython
sudo apt-get install python-numpy
sudo apt-get install python-scipy
sudo apt-get install python-matplotlib
sudo apt-get install python-setuptools
Quick installation check
^^^^^^^^^^^^^^^^^^^^^^^^^^^
Open a new terminal window and type::
which ipython
You should see::
/usr/bin/ipython
.. _linux_nonroot:
Non-root setup using virtualenv
---------------------------------------------
If you are using a computer on a system managed network which has Python 2.6 or
2.7 installed along with NumPy, SciPy, matplotlib, and easy_install, then you
might want to look at the following. This setup assumes you do not have root
privilege and takes advantage of the `virtualenv `_
package. This allows you to install new and updated packages to a virtual
clone of this Python installation without having root.
Assume that the system Python installation is installed in the root directory
``$PYTHONROOT``, so that you find ``python`` and ``easy_install`` in
``$PYTHONROOT/bin``. Now install ``pip``, ``distribute``, and ``virtualenv``::
$PYTHONROOT/bin/easy_install --user --upgrade virtualenv
Now use ``virtualenv`` to make a local virtual Python which is a clone of the
system Python but resides in a directory (e.g. ``~/py27``) where you have write
access::
~/.local/bin/virtualenv --system-site-packages ~/py27
The ``--system-site-packages`` option tells ``virtualenv`` to make links to all of the
packages that are already installed in the system Python. In general this is convenient,
but you may want to start with a clean Python installation by leaving out that option.
To use this virtual Python just do:
===== =========================================
Shell Command
===== =========================================
csh ``source ~/py27/bin/activate.csh``
bash ``. ~/py27/bin/activate``
===== =========================================
For convience you might make an alias for these startup commands in your csh or
bash startup file. Once you've activated the virtual Python environment then
you *do not* use the ``--user`` option in ``easy_install`` or ``pip install``.
All installs will be made in your local environment.
To finish up you need to install ``ipython`` in this virtual environment, even
if it already exists in the system python::
pip install --upgrade ipython
.. Note::
You can make managing your virtual environments even easier with the popular
`virtualenvwrapper `_
package.
Quick installation check
^^^^^^^^^^^^^^^^^^^^^^^^^^^
Open a new terminal window and type::
which ipython
You should see something like the following::
~/py27/bin/ipython