Differences between revisions 52 and 61 (spanning 9 versions)
Revision 52 as of 2020-09-10 12:07:34
Size: 4044
Editor: bonaccos
Comment:
Revision 61 as of 2021-09-08 06:37:35
Size: 4390
Editor: bonaccos
Comment:
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
#rev 2018-08-28 davidsch #rev 2020-09-10 bonaccos
Line 3: Line 3:
<<TableOfContents()>>
Line 18: Line 19:
Here is a small howto for installing python 2.7.15 in your home: Documentation on `pyenv` can be found at https://github.com/pyenv/pyenv

Here is a small howto for installing python 3.9.1 in your home:
Line 22: Line 25:
curl https://raw.githubusercontent.com/yyuu/pyenv-installer/master/bin/pyenv-installer -o pyenv-installer}}} curl https://raw.githubusercontent.com/pyenv/pyenv-installer/master/bin/pyenv-installer -o pyenv-installer
}}}
Line 28: Line 32:
 * Add the following three lines to your ~/.bash_profile:  * Add the following lines to your `~/.profile` before sourcing ~/.bashrc`:
Line 30: Line 34:
export PATH="$HOME/.pyenv/bin:$PATH"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"}}}
export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init --path)"
}}}
 * In the `~/.bashrc`:
 {{{
eval "$(pyenv init -)"
}}}
 * If you want to pyenv-virtualenv automatically (in the `~/.bashrc`):
 {{{
eval "$(pyenv virtualenv-init -)"
}}}
Line 34: Line 47:
 * Restart your shell so the path changes take effect:  * You need a new login shell for all settings to take effect (when logged in on a Desktop environment logoff and login again)

 * Install some python version, e.g. for python 3.9.1:
Line 36: Line 51:
exec $SHELL}}}

 * Install some python version, e.g. for python 2.7.15:
 {{{
env PYTHON_CONFIGURE_OPTS="--enable-shared" pyenv install 2.7.15
env PYTHON_CONFIGURE_OPTS="--enable-shared" pyenv install 3.9.1
Line 46: Line 57:
pyenv global 2.7.15}}} pyenv global 3.9.1}}}

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

For a detailed overview for conda please follow to the Conda documentation.

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

Documentation on pyenv can be found at https://github.com/pyenv/pyenv

Here is a small howto for installing python 3.9.1 in your home:

  • Install pyenv:
    curl https://raw.githubusercontent.com/pyenv/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 lines to your ~/.profile before sourcing ~/.bashrc`:

    export PYENV_ROOT="$HOME/.pyenv"
    export PATH="$PYENV_ROOT/bin:$PATH"
    eval "$(pyenv init --path)"
  • In the ~/.bashrc:

    eval "$(pyenv init -)"
  • If you want to pyenv-virtualenv automatically (in the ~/.bashrc):

    eval "$(pyenv virtualenv-init -)"
  • You need a new login shell for all settings to take effect (when logged in on a Desktop environment logoff and login again)
  • Install some python version, e.g. for python 3.9.1:
    env PYTHON_CONFIGURE_OPTS="--enable-shared" pyenv install 3.9.1
    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 3.9.1
  • 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: https://pip.pypa.io/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)