Python environment

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 12/bookworm

Yes

Yes(3.11)

Debian 11/bullseye

Yes

Yes(3.9)

Debian 10/buster

Yes

Yes(3.7)

Debian 9/stretch

Yes

Yes(3.5)

Debian 8/jessie

Yes

No (3.4)

Ubuntu 16.04/xenial

Yes

Yes(3.5)

Ubuntu 18.04/bionic

Yes

Yes(3.6)

Ubuntu 20.04/focal

No

Yes(3.8)

Ubuntu 22.04/jammy

No

Yes(3.10)

RHEL 7.x

Yes

No(3.6)

RHEL 8.x

No

Yes(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.