Development/Python
Introduction
Python is a versatile, easy-to-learn, usually interpreted programming language. It offers a wide range of libraries for scientific tasks and visualization. Python is the de facto standard interface for applications of machine learning. Python can be used in particular as an open source alternative for tasks that have usually been used for Matlab.
Installation and Versions
Python is available on all systems. Either as system Python, which comes bundled with the operating system, or via Lmod software modules. Installation is not required.
System Python
System Python is available in different versions, typically the default system Python is too old for most users and applications. Newer versions are therefore installed alongside the standard version. You can access a specific Python version by specifying the version in the Python command.
On bwUniCluster, different versions are currently available, ls /usr/bin/python[0-9].*[0-9] | sort -V | cut -d"/" -f4 | xargs
results in: python2.7 python3.6 python3.8 python3.9 python3.11
.
Please note, that these exact versions will change over time and differ from site to site!
$ python --version # This is system default Python
Python 3.6.8
$ python3.11 --version
Python 3.11.2
Python Modules
Python is also offered via software modules. Available versions can be identified via:
$ module avail devel/python
A specific version of Python can then be chosen e.g. as follows:
$ module load devel/python/3.12.3_gnu_13.3
$ python --version
Python 3.12.3
Python Distributions
For the usage of Python we strongly recommend not to install own Python versions, e.g. via distributions like Anaconda. However, there are use cases where the use of e.g. conda is beneficial or, depending on the scientific community, a standard approach to distribute Python packages. For the use of conda on bwHPC clusters, please refer to Conda .
Usage
Interactively, prompt
Scripting
Via Jupyter Jupyter
Package Manager
pip
Virtual Environments
Short description
Benefit
Creation
Usage
Best Practice
Always use virtual environments
Do's and don'ts