Python environment

TPA decides which Python interpreter to use based on the distribution it detects on a target instance. It will use Python 3 wherever possible, and fall back to Python 2 only when unavoidable.

The tpaexec configure command will set preferred_python_version according to the distribution.

Distribution

Python 2

Python 3

Debian 10/buster

x

x (3.7)

Debian 9/stretch

x

x (3.5)

Debian 8/jessie

x

x (3.4)

Ubuntu 16.04/xenial

x

x (3.5)

Ubuntu 18.04/bionic

x

x (3.6)

Ubuntu 20.04/focal

x

x (3.8)

Ubuntu 22.04/jammy

x

x (3.10)

RHEL 7.x

x

x (3.6)

RHEL 8.x

x

x (3.6)

Ubuntu 20.04, 22.04 and RHEL 8.x can be used only with Python 3.

RHEL 7.x ships with Python 3.6, but the librpm bindings for Python 3 are not available, so TPA must use Python 2 instead. Debian 8 does not have the Python 3.5+ required to support Ansible.

You can decide for other distributions whether you prefer python2 or python3 , but the default for new clusters is python3 .

Backwards compatibility

For compatibility with existing clusters, the default value of preferred_python_version is python2 , but you can explicitly choose python3 even on systems that were already deployed with python2 .

cluster_vars:
  preferred_python_version: python3

TPA will ignore this setting on distributions where it cannot use Python 3.