Differences between revisions 13 and 48 (spanning 35 versions)
Revision 13 as of 2013-06-04 11:21:25
Size: 4015
Editor: alders
Comment:
Revision 48 as of 2020-09-10 09:27:54
Size: 3948
Editor: bonaccos
Comment:
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
#rev 2018-08-28 davidsch
Line 3: Line 5:
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 some modules that come with the current Debian GNU/Linux stable release, but usually this is because they are dependencies of an installed software. For python we strongly recommend to build own python environments with the desired python versions and modules.
Line 5: Line 7:
Since Python 2.6 there is an easy way to install missing or outdated modules in your home through `easy_install`. Our recommended way to install such environments is trough Conda, alternatively via building an environment via `pyenv` is as well possible. Additional module can then either be installed by conda itself or trough `pip`.
Line 7: Line 9:
== How to use easy_install == == Installing your own python environment with Conda ==
Line 9: Line 11:
 || 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 13:
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 15:
== Installing other versions of Python == Here is a small howto for installing python 2.7.15 in your home:
Line 18: Line 17:
You can of course install other versions of Python in your home. A very comfortable way of doing that is by using [[https://github.com/utahta/pythonbrew|pythonbrew]]. You will find a howto on that website with detailled instructions how to use it.  * 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 ~/.bash_profile:
 {{{
export PATH="$HOME/.pyenv/bin:$PATH"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"}}}
Line 20: Line 31:
== Installation of custom (non easy_install-able) Python modules in the home directory of a user ==  * Restart your shell so the path changes take effect:
 {{{
exec $SHELL}}}
Line 22: Line 35:
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.  * Install some python version, e.g. for python 2.7.15:
 {{{
env PYTHON_CONFIGURE_OPTS="--enable-shared" pyenv install 2.7.15
pyenv rehash}}}
 Note, that settting of `PYTHON_CONFIGURE_OPTS="--enable-shared"` is needed if you need to link against the libpython shared library.
Line 24: Line 41:
On this page we will list some bash-snippets that install some often requested modules in a users home.  * 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.15}}}
Line 26: Line 45:
== numpy ==  * In order to update {{{pyenv}}} run:
 {{{
pyenv update}}}
Line 28: Line 49:
=== Documentation of pyenv ===
 || Website of pyenv || https://github.com/yyuu/pyenv/ ||
 || Website of pyenv installer || https://github.com/yyuu/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 ===
Line 31: Line 74:
VERSION_NUMPY=1.7.1
installdir="${HOME}/opt"
builddir="/scratch/${USER}/build/numpy"
# Installation script for nlopt library
Line 35: Line 76:
export PYTHONPATH=${installdir}/lib/python:${PYTHONPATH} VERSION=2.3
INSTALLDIR=$HOME/.local
BUILDDIR=/scratch/$USER/nlopt
Line 37: Line 80:
mkdir -p ${builddir} mkdir -p $BUILDDIR
cd $BUILDDIR
Line 39: Line 83:
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 --home=${installdir}
}}}
wget "http://ab-initio.mit.edu/nlopt/nlopt-${VERSION}.tar.gz"
tar -xvvzkf nlopt-${VERSION}.tar.gz
cd nlopt-${VERSION}
Line 48: Line 87:
== scipy == ./configure \
        --enable-shared \
        --prefix=$INSTALLDIR \
        OCT_INSTALL_DIR=$INSTALLDIR/octave/oct \
        M_INSTALL_DIR=$INSTALLDIR/octave/m/ \
        MEX_INSTALL_DIR=$INSTALLDIR/mex \
        GUILE_INSTALL_DIR=$INSTALLDIR/guile
Line 50: Line 95:
|| '''Depends on''' ||
|| numpy ||

{{{#!highlight bash
#!/bin/bash

VERSION_SCIPY=1.6.0
installdir="${HOME}/opt"
builddir="/scratch/${USER}/build/scipy"

export PYTHONPATH=${installdir}/lib/python:${PYTHONPATH}

mkdir -p ${builddir}

cd ${builddir}
wget --output-document=scipy-${VERSION_SCIPY}.tar.gz \
        http://sourceforge.net/projects/scipy/files/scipy/${VERSION_SCIPY}/scipy-${VERSION_SCIPY}.tar.gz/download
tar -xvvzkf scipy-${VERSION_SCIPY}.tar.gz
cd scipy-${VERSION_SCIPY}
python setup.py build
python setup.py install --home=${installdir}
}}}

== matplotlib ==

|| '''Depends on''' ||
|| numpy ||

{{{#!highlight bash
#!/bin/bash

VERSION_MATPLOTLIB=1.0.1
installdir="${HOME}/opt"
builddir="/scratch/${USER}/build/matplotlib"

export PYTHONPATH=${installdir}/lib/python:${PYTHONPATH}

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 --home=${installdir}
}}}

== nose ==

|| '''Depends on''' ||
|| numpy ||
|| scipy ||

{{{#!highlight bash
#!/bin/bash

VERSION_NOSE=1.0.0
installdir="${HOME}/opt"
builddir="/scratch/${USER}/build/nose"

export PYTHONPATH=${installdir}/lib/python:${PYTHONPATH}

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 --home=${installdir}
make
make install

Python

We provide some modules that come with the current Debian GNU/Linux stable release, but usually this is because they are dependencies of an installed software. For python we strongly recommend to build own python environments with the desired python versions and modules.

Our recommended way to install such environments is trough Conda, alternatively via building an environment via pyenv is as well possible. Additional module can then either be installed by conda itself or trough pip.

Installing your own python environment with Conda

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.15 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 ~/.bash_profile:
    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.15:
    env PYTHON_CONFIGURE_OPTS="--enable-shared" pyenv install 2.7.15
    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.15
  • In order to update pyenv run:

    pyenv update

Documentation of pyenv

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


CategoryLXSW

Programming/Languages/Python (last edited 2023-11-06 08:33:58 by stroth)