Heroku Python Support
Last updated 09 December 2019
Table of Contents
Heroku supports all popular web frameworks for Python (Django, Flask, Pyramid, and so on).
For a deployment tutorial that uses a sample Django app, see Getting Started on Heroku with Python.
Recognizing a Python app
Heroku automatically recognizes your app as a Python app if it includes a
setup.py file in its root directory.
When a deployed application is recognized as a Python application, you’ll see this in the build output:
$ git push heroku master -----> Python app detected
Specifying a Python version
By default, newly created Python apps use the
python-3.6.9 runtime. You can also specify a different supported Python version.
python-3.8.0on all supported runtime stacks
python-3.7.5on all supported runtime stacks
python-3.6.9on all supported runtime stacks
python-2.7.17on all supported runtime stacks
Note: Cedar 14 has reached end of life and all apps should be upgraded to the latest stack. The latest Python versions listed above have been backported to Cedar 14 to support migration efforts, but this migration should happen as soon as possible. See the Cedar 14 End of Life support article if you have further questions.
If your app includes a
requirements.txt file, Heroku runs the following command to resolve dependencies:
$ pip install -r requirements.txt
For Django applications, a Heroku Postgres
hobby-dev database is automatically provisioned. This populates your app’s
DATABASE_URL config var.
A Heroku Postgres database is not automatically provisioned for other Python apps, but you can easily provision one manually.