Python on the HPC
A very powerful, easy to use and object-oriented scripting language.
Python is a general-purpose programming language widely used for scientific computing, data analysis, machine learning, automation, and web development.
The Python ecosystem includes packages for numerical computing, visualization, machine learning, bioinformatics, workflow automation, and many other research tasks.
Using Python on the HPC#
Currently, Python version 3 is available on the HPC:
Using newer versions of Python on the HPC#
The RCC includes the most recent Python version from the default vendor-provided package repository (3.9.25 at the time of writing).
If you need a newer version of Python, we recommend using uv to install it. Below is a brief example of installing the latest version (3.14 at the time of writing).
If you need a specific version, you can specify it when creating the virtual environment with the --python MAJOR.MINOR flag. For example, to create a virtual environment with Python 3.8:
Python environments#
Our recommended way to use Python on the HPC is to create a custom environment using either uv, virtualenv, or Conda & Anaconda. All three tools are available and pre-installed on the HPC.
If your script uses only the Python standard library and does not require third-party packages, you can use the default system Python.
uv#
To use uv, refer to our dedicated uv page.
Virtualenv#
The simplest way to create an isolated Python environment is to use Python's built-in venv module.
Each environment contains its own Python executable and package directory and is isolated from the system-wide Python installation.
The following example shows how to create a Python virtual environment named myapp in the default version of Python:
Creating a Virtualenv#
Activating a Virtualenv#
As you can see from the above, you need to specify the full path each time you execute a Python-related command in your
new Virtualenv. If you want to make your Virtualenv Python environment the default,
you can run source ~/myapp/bin/activate:
To deactivate the environment, type deactivate at the prompt:
Tip
If you know that you will be using your custom Python virtualenv exclusively, or most of the time, you can
autoload it upon login by appending the activate script to your .bashrc file:
Conda#
To use Conda, refer to our dedicated Conda page.
Jupyter Notebooks#
To use Jupyter Notebooks, our recommended development environment for Python collaboration, refer to our dedicated Jupyter Notebooks page
Python HPC Jobs#
You submit Python jobs to the HPC the same way you would with other jobs. Be sure to include the activation commands for any virtual environments or Conda environments.
Using Python v2 on the HPC#
The Python community sunsetted support for Python 2 in 2015. We recommend that you upgrade your libraries to Python 3. However, if you need to run Python 2, you can use PyEnv:
You can specify a specific version of Python if you need to run a version older than 2.7.18:
Until you activate a specific Python version using pyenv shell, pyenv shims the system-wide default
Python installation (/usr/bin/python; v3.9). So, it is safe to keep in your ~/.bashrc.
If you need to load Python2 for a Slurm job, you can add pyenv shell [version] in your submit script before the executable.