Python environments

These are the Python environments we use inside our Docker containers.

System Python 3.10

Python 3.10 (‘slim-bullseye’) is installed from the Debian repositories into /usr.

Dependencies are installed with pip3. See the Docker base image for details.

Local Python 3.10

All of our Docker containers are based on the official python:3.10 Docker Hub repo, and have the latest stable version of Python 3.10 installed in to /usr/local.

The uwsgi and awslogs commands are installed using pip3 and run using Python 3.

Python 3.10 virtual environment

When a Docker container is created, a virtual environment is created at /app/venv using the locally installed Python 3.10. Apps and their requirements are then installed to this virtual environment. uwsgi is configured to run the apps inside the virtual enviroment.

Future Python compatibility

Until recently we were using Python 3.6 but as we have upgraded to 3.10 we only run CI for that Python version as of October 2021. This Python version reaches its end of life on 5 October 2025 which is well beyond the expected retirement of this project.