Differences between revisions 5 and 22 (spanning 17 versions)
Revision 5 as of 2013-06-04 11:07:45
Size: 4052
Editor: alders
Comment:
Revision 22 as of 2014-06-20 14:01:36
Size: 4828
Editor: alders
Comment:
Deletions are marked like this. Additions are marked like this.
Line 18: Line 18:
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. 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.

 * Install pyenv:
  {{{
curl -L https://raw.githubusercontent.com/yyuu/pyenv-installer/master/bin/pyenv-installer | bash}}}

* Add the following three lines to your ~/.bashrc:
---snip---
export PATH="$HOME/.pyenv/bin:$PATH"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"
---snap---

* Restart your shell so the path changes take effect:
exec $SHELL


Install some python versions:
pyenv install 2.7.7
pyenv rehash

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

pyenv: 5 MB
python 2.7.7: 110 MB

Update:
pyenv update
Line 22: Line 52:
We are sometimes asked for newer version of Python modules. Since we do not want to maintain Python for Linux in SEPP, the user needs to install these modules in his/her home directory. 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.
Line 28: Line 58:
{{{ {{{#!highlight bash
Line 31: Line 61:
VERSION_NUMPY=1.6.0
installdir="${HOME}/opt"
VERSION_NUMPY=1.7.1
Line 34: Line 63:

export PYTHONPATH=${installdir}/lib/python
Line 41: Line 68:
     http://sourceforge.net/projects/numpy/files/NumPy/${VERSION_NUMPY}/numpy-${VERSION_NUMPY}.tar.gz/download     http://sourceforge.net/projects/numpy/files/NumPy/${VERSION_NUMPY}/numpy-${VERSION_NUMPY}.tar.gz/download
Line 45: Line 72:
python setup.py install --home=${installdir} python setup.py install --user
Line 50: Line 77:
 * First you need to install scipy as shown above and make sure PYTHONPATH points to the new numpy installation. || '''Depends on''' ||
|| numpy ||
Line 52: Line 80:
{{{ {{{#!highlight bash
Line 55: Line 83:
VERSION_SCIPY=1.6.0
installdir="${HOME}/opt"
VERSION_SCIPY=0.13.0b1
Line 58: Line 85:

export PYTHONPATH=${installdir}/lib/python
Line 65: Line 90:
     http://sourceforge.net/projects/scipy/files/scipy/${VERSION_SCIPY}/scipy-${VERSION_SCIPY}.tar.gz/download     http://downloads.sourceforge.net/project/scipy/scipy/${VERSION_SCIPY}/scipy-${VERSION_SCIPY}.tar.gz
Line 69: Line 94:
python setup.py install --home=${installdir} python setup.py install --user
Line 74: Line 99:
 * First you need to install scipy as shown above and make sure PYTHONPATH points to the new numpy installation. || '''Depends on''' ||
|| numpy ||
Line 76: Line 102:
{{{ {{{#!highlight bash
Line 79: Line 105:
VERSION_MATPLOTLIB=1.0.1
installdir="${HOME}/opt"
VERSION_MATPLOTLIB=1.3.0
Line 82: Line 107:

export PYTHONPATH=${installdir}/lib/python
Line 89: Line 112:
     http://sourceforge.net/projects/matplotlib/files/matplotlib/matplotlib-${VERSION_MATPLOTLIB}/matplotlib-${VERSION_MATPLOTLIB}.tar.gz/download     http://sourceforge.net/projects/matplotlib/files/matplotlib/matplotlib-${VERSION_MATPLOTLIB}/matplotlib-${VERSION_MATPLOTLIB}.tar.gz/download
Line 93: Line 116:
python setup.py install --home=${installdir} python setup.py install --user
Line 98: Line 121:
 * This module is required to run e.g. the numpy and scipy test suites. || '''Depends on''' ||
|| numpy ||
|| scipy ||
Line 100: Line 125:
{{{ {{{#!highlight bash
Line 104: Line 129:
installdir="${HOME}/opt"
Line 106: Line 130:

export PYTHONPATH=${installdir}/lib/python
Line 116: Line 138:
python setup.py install --home=${installdir} python setup.py install --user
}}}

=== nlopt ===
{{{#!highlight bash
#!/bin/bash

# Installation script for nlopt library

VERSION=2.3
INSTALLDIR=$HOME/.local
BUILDDIR=/scratch/$USER/nlopt

mkdir -p $BUILDDIR
cd $BUILDDIR

wget "http://ab-initio.mit.edu/nlopt/nlopt-${VERSION}.tar.gz"
tar -xvvzkf nlopt-${VERSION}.tar.gz
cd nlopt-${VERSION}

./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

make
make install

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.

Since Python 2.6 there is an easy way to install missing or outdated modules in your home through easy_install.

How to use easy_install

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.

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.

  • Install pyenv:
    • curl -L https://raw.githubusercontent.com/yyuu/pyenv-installer/master/bin/pyenv-installer | bash

* Add the following three lines to your ~/.bashrc: ---snip--- export PATH="$HOME/.pyenv/bin:$PATH" eval "$(pyenv init -)" eval "$(pyenv virtualenv-init -)" ---snap---

* Restart your shell so the path changes take effect: exec $SHELL

Install some python versions: pyenv install 2.7.7 pyenv rehash

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

pyenv: 5 MB python 2.7.7: 110 MB

Update: pyenv update

Installation of custom (non easy_install-able) Python modules in the home directory of a user

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

   1 #!/bin/bash
   2 
   3 VERSION_NUMPY=1.7.1
   4 builddir="/scratch/${USER}/build/numpy"
   5 
   6 mkdir -p ${builddir}
   7 
   8 cd ${builddir}
   9 wget --output-document=numpy-${VERSION_NUMPY}.tar.gz \
  10     http://sourceforge.net/projects/numpy/files/NumPy/${VERSION_NUMPY}/numpy-${VERSION_NUMPY}.tar.gz/download
  11 tar -xvvzkf numpy-${VERSION_NUMPY}.tar.gz
  12 cd numpy-${VERSION_NUMPY}
  13 python setup.py build --fcompiler=gnu95
  14 python setup.py install --user

scipy

Depends on

numpy

   1 #!/bin/bash
   2 
   3 VERSION_SCIPY=0.13.0b1
   4 builddir="/scratch/${USER}/build/scipy"
   5 
   6 mkdir -p ${builddir}
   7 
   8 cd ${builddir}
   9 wget --output-document=scipy-${VERSION_SCIPY}.tar.gz \
  10     http://downloads.sourceforge.net/project/scipy/scipy/${VERSION_SCIPY}/scipy-${VERSION_SCIPY}.tar.gz
  11 tar -xvvzkf scipy-${VERSION_SCIPY}.tar.gz
  12 cd scipy-${VERSION_SCIPY}
  13 python setup.py build
  14 python setup.py install --user

matplotlib

Depends on

numpy

   1 #!/bin/bash
   2 
   3 VERSION_MATPLOTLIB=1.3.0
   4 builddir="/scratch/${USER}/build/matplotlib"
   5 
   6 mkdir -p ${builddir}
   7 
   8 cd ${builddir}
   9 wget --output-document=matplotlib-${VERSION_MATPLOTLIB}.tar.gz \
  10     http://sourceforge.net/projects/matplotlib/files/matplotlib/matplotlib-${VERSION_MATPLOTLIB}/matplotlib-${VERSION_MATPLOTLIB}.tar.gz/download
  11 tar -xvvzkf matplotlib-${VERSION_MATPLOTLIB}.tar.gz
  12 cd matplotlib-${VERSION_MATPLOTLIB}
  13 python setup.py build
  14 python setup.py install --user

nose

Depends on

numpy

scipy

   1 #!/bin/bash
   2 
   3 VERSION_NOSE=1.0.0
   4 builddir="/scratch/${USER}/build/nose"
   5 
   6 mkdir -p ${builddir}
   7 
   8 cd ${builddir}
   9 wget http://somethingaboutorange.com/mrl/projects/nose/nose-${VERSION_NOSE}.tar.gz
  10 tar -xvvzkf nose-${VERSION_NOSE}.tar.gz
  11 cd nose-${VERSION_NOSE}
  12 python setup.py build
  13 python setup.py install --user

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)