Python Buildpack on App Platform
Validated on 16 Apr 2025 • Last edited on 23 Apr 2025
App Platform is a Platform-as-a-Service (PaaS) offering that allows developers to publish code directly to DigitalOcean servers without worrying about the underlying infrastructure.
How App Platform Builds Images
App Platform supports two ways to build an image for your app: Cloud Native Buildpacks and Dockerfiles.
When you give App Platform access to your code, it defaults to using a Dockerfile if one is present in the root of the directory or specified in the app spec. Otherwise, App Platform checks your code to determine what language or framework it uses. If it supports the language or framework, it chooses an appropriate resource type and uses the proper buildpack to build the app and deploy a container.
heroku-buildpack-python is utilized as the buildpack for detecting and building your Python applications.
Python Applications using Buildpacks
App Platform looks for any of the following to detect a Python application:
requirements.txt
Pipfile
setup.py
Current Buildpack Version and Supported Runtimes
App Platform uses version 279
of the Heroku Python Buildpack. If no version is specified in your app, App Platform defaults to using version 3.13.x
.
App Platform offers the v4, v3, and v2 of the Python buildpack. To start using Python v4 or v3, we recommend upgrading your stack to Ubuntu-22 before upgrading to newer Python buildpack versions. To see specific runtimes that are available for these versions, please look at our release notes.
The buildpack supports the following Python runtime versions:
- Ubuntu-22
- 3.13
- 3.12.7 - 3.12.0
- 3.11.10 - 3.11.0
- 3.10.15 - 3.10.4
- 3.9.20 - 3.9.12
Specify a Python Version
You can configure the python version used at runtime by specifying a runtime.txt
file at the root of your source code:
runtime.txt
python-3.10.4
Limits
- At least one of
requirements.txt
,Pipfile
, andsetup.py
must be located in the root directory of the repo. - A run command is required. If one is not auto-detected, you must set one before deploying your app.
- Due to an issue with Gunicorn running in Docker, App Platform fails to run when the temporary directory is not specified in the run command. To resolve, run Gunicorn to use a different location for its temp files. Modify the run command by passing this option:
gunicorn --worker-tmp-dir /dev/shm project.wsgi
, whereproject
is the name of your project.