4827
Comment:
|
3998
|
Deletions are marked like this. | Additions are marked like this. |
Line 3: | Line 3: |
We provide as many modules as possible that come with the current Debian GNU/Linux stable release. Nevertheless, that might not be enough for your needs since you may want to use the newest version of some module or one that is not part of Debian. | We provide as many modules as possible that come with the current Debian GNU/Linux stable release. Nevertheless, that might not be enough for your needs since you may want to use the newest version of some module or one that is not part of Debian. Furthermore you might want to use a different version of Python. |
Line 5: | Line 5: |
Since Python 2.6 there is an easy way to install missing or outdated modules in your home through `easy_install`. | The recommended way to install additional python modules is through {{{pip}}}. Unfortunately, {{{pip}}} does not allow users to install modules in the user context. That means that you will first have to install your own version of python in your home. From that moment on, you can install modules through {{{pip}}}. |
Line 7: | Line 7: |
== How to use easy_install == | |
Line 9: | Line 8: |
|| Command line help: || `easy_install --help` || || Online documentation: || http://packages.python.org/distribute/easy_install.html || || Install a new module: || `easy_install --user MODULENAME` || || Update an existing module: || `easy_install --user -U MODULENAME` || |
== Installing your own python versions with pyenv == |
Line 14: | Line 10: |
Modules will be installed in your home within `~/.local/`. You do not need to adapt the `PYTHONPATH` environment variable since python will look for modules in this directory automatically. | {{{Pyenv}}} is a collection of tools that allow users to manage different versions of python. In the simplest case you will need it to simply get an installation of python in your user space. Using that custom python installation, you will then be able to install additional modules in a very comfortable way, since you can install them in the "system path" (which is then somewhere within your home). |
Line 16: | Line 12: |
== Installing other versions of Python == You can of course install other versions of Python in your home. A very comfortable way of doing that is by using {{{pyenv}}}. Here is a short install howto. Further down you find links to documentation etc. |
Here is a small howto for installing python 2.7.11 in your home: |
Line 22: | Line 16: |
curl -L https://raw.githubusercontent.com/yyuu/pyenv-installer/master/bin/pyenv-installer | bash}}} * Add the following three lines to your ~/.bashrc: ---snip--- |
curl https://raw.githubusercontent.com/yyuu/pyenv-installer/master/bin/pyenv-installer -o pyenv-installer}}} Check what the script is doing and then execute it: {{{ bash ./pyenv-installer }}} You can remove the installer file afterwards. * Add the following three lines to your ~/.bashrc: {{{ |
Line 28: | Line 26: |
eval "$(pyenv virtualenv-init -)" ---snap--- | eval "$(pyenv virtualenv-init -)"}}} |
Line 31: | Line 28: |
* Restart your shell so the path changes take effect: exec $SHELL |
* Restart your shell so the path changes take effect: {{{ exec $SHELL}}} * Install some python version, e.g. for python 2.7.11: {{{ env PYTHON_CONFIGURE_OPTS="--enable-shared" pyenv install 2.7.11 pyenv rehash}}} Note, that settting of `PYTHON_CONFIGURE_OPTS="--enable-shared"` is needed if you need to link against the libpython shared library. * Make sure that this new python version will be used when you run python. You only need to run this command once: {{{ pyenv global 2.7.11}}} * In order to update {{{pyenv}}} run: {{{ pyenv update}}} === Documentation of pyenv === || Website of pyenv || https://github.com/yyuu/pyenv/ || || Website of pyenv installer || https://github.com/yyuu/pyenv-installer || |
Line 35: | Line 51: |
Install some python versions: pyenv install 2.7.7 pyenv rehash |
== Installation of additional or newer modules with pip == |
Line 39: | Line 53: |
Make sure that this new python version will be used when you run python. You only need to run this command once: pyenv global 2.7.7 |
Once you installed your custom python with the explanations given above, you are ready to install additional or newer modules the easy way. The usage of {{{pip}}} is very easy. The following command installs the module {{{numpy}}} {{{ pip install numpy}}} while the next command would upgrade an existing installation of {{{numpy}}} {{{ pip install --upgrade numpy}}} |
Line 43: | Line 60: |
pyenv: 5 MB python 2.7.7: 110 MB Update: pyenv update |
For advanced usage of {{{pip}}}, please consult the manuals: http://pip.readthedocs.org/en/latest/ |
Line 50: | Line 63: |
== Installation of custom (non easy_install-able) Python modules in the home directory of a user == | == Installation of Python modules that are not available in the archives of pip == |
Line 52: | Line 65: |
We are sometimes asked for newer version of Python modules. We do no longer build Python modules in SEPP as the requests for modules and their versions is too widespread to keep these modules maintainable. On this page we will list some bash-snippets that install some often requested modules in a users home. == numpy == {{{#!highlight bash #!/bin/bash VERSION_NUMPY=1.7.1 builddir="/scratch/${USER}/build/numpy" mkdir -p ${builddir} cd ${builddir} wget --output-document=numpy-${VERSION_NUMPY}.tar.gz \ http://sourceforge.net/projects/numpy/files/NumPy/${VERSION_NUMPY}/numpy-${VERSION_NUMPY}.tar.gz/download tar -xvvzkf numpy-${VERSION_NUMPY}.tar.gz cd numpy-${VERSION_NUMPY} python setup.py build --fcompiler=gnu95 python setup.py install --user }}} == scipy == || '''Depends on''' || || numpy || {{{#!highlight bash #!/bin/bash VERSION_SCIPY=0.13.0b1 builddir="/scratch/${USER}/build/scipy" mkdir -p ${builddir} cd ${builddir} wget --output-document=scipy-${VERSION_SCIPY}.tar.gz \ http://downloads.sourceforge.net/project/scipy/scipy/${VERSION_SCIPY}/scipy-${VERSION_SCIPY}.tar.gz tar -xvvzkf scipy-${VERSION_SCIPY}.tar.gz cd scipy-${VERSION_SCIPY} python setup.py build python setup.py install --user }}} == matplotlib == || '''Depends on''' || || numpy || {{{#!highlight bash #!/bin/bash VERSION_MATPLOTLIB=1.3.0 builddir="/scratch/${USER}/build/matplotlib" mkdir -p ${builddir} cd ${builddir} wget --output-document=matplotlib-${VERSION_MATPLOTLIB}.tar.gz \ http://sourceforge.net/projects/matplotlib/files/matplotlib/matplotlib-${VERSION_MATPLOTLIB}/matplotlib-${VERSION_MATPLOTLIB}.tar.gz/download tar -xvvzkf matplotlib-${VERSION_MATPLOTLIB}.tar.gz cd matplotlib-${VERSION_MATPLOTLIB} python setup.py build python setup.py install --user }}} == nose == || '''Depends on''' || || numpy || || scipy || {{{#!highlight bash #!/bin/bash VERSION_NOSE=1.0.0 builddir="/scratch/${USER}/build/nose" mkdir -p ${builddir} cd ${builddir} wget http://somethingaboutorange.com/mrl/projects/nose/nose-${VERSION_NOSE}.tar.gz tar -xvvzkf nose-${VERSION_NOSE}.tar.gz cd nose-${VERSION_NOSE} python setup.py build python setup.py install --user }}} |
Here we provide some shell script snippets for installing frequently asked modules which cannot be installed through {{{pip}}}. These scripts just provide an example installation. You might have to adapt some paths in order to make the module work correctly with the version of python you are using (e.g. if you run your custom python provided through {{{pyenv}}}). |
Python
We provide as many modules as possible that come with the current Debian GNU/Linux stable release. Nevertheless, that might not be enough for your needs since you may want to use the newest version of some module or one that is not part of Debian. Furthermore you might want to use a different version of Python.
The recommended way to install additional python modules is through pip. Unfortunately, pip does not allow users to install modules in the user context. That means that you will first have to install your own version of python in your home. From that moment on, you can install modules through pip.
Installing your own python versions with pyenv
Pyenv is a collection of tools that allow users to manage different versions of python. In the simplest case you will need it to simply get an installation of python in your user space. Using that custom python installation, you will then be able to install additional modules in a very comfortable way, since you can install them in the "system path" (which is then somewhere within your home).
Here is a small howto for installing python 2.7.11 in your home:
- Install pyenv:
curl https://raw.githubusercontent.com/yyuu/pyenv-installer/master/bin/pyenv-installer -o pyenv-installer
Check what the script is doing and then execute it:bash ./pyenv-installer
You can remove the installer file afterwards. - Add the following three lines to your ~/.bashrc:
export PATH="$HOME/.pyenv/bin:$PATH" eval "$(pyenv init -)" eval "$(pyenv virtualenv-init -)"
- Restart your shell so the path changes take effect:
exec $SHELL
- Install some python version, e.g. for python 2.7.11:
env PYTHON_CONFIGURE_OPTS="--enable-shared" pyenv install 2.7.11 pyenv rehash
Note, that settting of PYTHON_CONFIGURE_OPTS="--enable-shared" is needed if you need to link against the libpython shared library.
- Make sure that this new python version will be used when you run python. You only need to run this command once:
pyenv global 2.7.11
In order to update pyenv run:
pyenv update
Documentation of pyenv
Website of pyenv
Website of pyenv installer
Installation of additional or newer modules with pip
Once you installed your custom python with the explanations given above, you are ready to install additional or newer modules the easy way. The usage of pip is very easy. The following command installs the module numpy
pip install numpy
while the next command would upgrade an existing installation of numpy
pip install --upgrade numpy
For advanced usage of pip, please consult the manuals: http://pip.readthedocs.org/en/latest/
Installation of Python modules that are not available in the archives of pip
Here we provide some shell script snippets for installing frequently asked modules which cannot be installed through pip. These scripts just provide an example installation. You might have to adapt some paths in order to make the module work correctly with the version of python you are using (e.g. if you run your custom python provided through pyenv).
nlopt
1 #!/bin/bash
2
3 # Installation script for nlopt library
4
5 VERSION=2.3
6 INSTALLDIR=$HOME/.local
7 BUILDDIR=/scratch/$USER/nlopt
8
9 mkdir -p $BUILDDIR
10 cd $BUILDDIR
11
12 wget "http://ab-initio.mit.edu/nlopt/nlopt-${VERSION}.tar.gz"
13 tar -xvvzkf nlopt-${VERSION}.tar.gz
14 cd nlopt-${VERSION}
15
16 ./configure \
17 --enable-shared \
18 --prefix=$INSTALLDIR \
19 OCT_INSTALL_DIR=$INSTALLDIR/octave/oct \
20 M_INSTALL_DIR=$INSTALLDIR/octave/m/ \
21 MEX_INSTALL_DIR=$INSTALLDIR/mex \
22 GUILE_INSTALL_DIR=$INSTALLDIR/guile
23
24 make
25 make install