Python
The Python language is officially supported on the platform.
Detection
To ensure our deployment system considers your application as a Python
application, a file Pipfile
, requirements.txt
or setup.py
should be
present at the root of your project, defining the dependencies of your app.
Versions
Supported Versions
-
3.11.2
(default) 3.10.10
3.9.16
-
3.8.16
(only forscalingo-20
stacks) -
3.7.16
(only forscalingo-20
stacks)
Recommended: pipenv
The preferred way to manage dependencies and python version is by using the
pipenv
tool. When creating a project with pipenv, the Python version is
frozen in the Pipfile
file, i.e.:
[requires]
python_version = "3.7"
The deployment system will use this information to install the last available
version respecting this constraint. In the previous example Python 3.7.11
would be installed.
The python_version
field only accepts minor versions of Python like 3.10
or
3.8
. If the project needs to use a specific Python patch (i.e.: 3.10.1
)
the Pipfile should contain a python_full_version
field, e.g.:
[requires]
python_full_version = "3.10.1"
Legacy: runtime.txt
Python 2 and Python 3 are both completely supported, you can specify the
runtime version in the runtime.txt
file at the root of your repository.
Example of runtime.txt
which would install Python 3.7.5:
python-3.7.5
Dependencies
Recommended: pipenv
When the project is using pipenv
and contains a Pipfile and a
Pipfile.lock files, the following command is used to install dependencies:
pipenv install
Legacy: requirements.txt
If a requirements.txt
file is present in your application, the dependencies
will be installed respecting this file with:
pip install -r requirements.txt
Frameworks
We handle most of the common frameworks. Obviously, Django is among them. You need to
configure your application to bind the port defined by the environment variable $PORT
.
Specific Python Buildpack Hooks
You may want to trigger custom actions after a successful deployment. The postdeploy hook is exactly what you need. But your application may require some actions to be executed during the deployment.
The Python buildpack can execute two hooks: before and after the installation of Python and its
dependencies. They must be located in the bin
root folder of your application and be named
pre_compile
and post_compile
.
Buildpack
More information at https://github.com/Scalingo/python-buildpack.