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 for scalingo-20 stacks)
  • 3.7.16 (only for scalingo-20 stacks)

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

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.


Suggest edits

Python

©2023 Scalingo