Python

Gedetecteerd via requirements.txt, Pipfile of pyproject.toml.

Stapsgewijze deployhandleidingen: Python, Django, Flask, FastAPI, Streamlit.

Zie Buildpacksvoor hoe detectie en het versiebeleid werken.

Detectie

requirements.txt, Pipfile of pyproject.toml in de Base directory.

Versies

Standaard is Python 3.13. Gepubliceerde versielijnen per september 2026: 3.10-3.14. Je krijgt de nieuwste patchversie binnen de gevraagde minorversie.

Vastzetten, in deze volgorde:

  • .python-version
  • runtime.txt (python-3.12 werkt ook)
  • requires-python in pyproject.toml (bij een versiebereik wordt de hoogste passende gepubliceerde versie gekozen)

Installatie en build

  • poetry.lock: Poetry, poetry install --only main
  • Pipfile.lock: Pipenv, pipenv install --deploy --system
  • requirements.txt: pip install -r requirements.txt
  • pyproject.toml met [tool.poetry] en zonder lockfile: Poetry
  • Anders: pip install .

De builder installeert pip, Poetry en Pipenv in vastgezette versies die op elke ondersteunde Python-versie draaien. We werken ze regelmatig bij; deploy je zonder cache, dan krijgt je app de op dat moment geldende versies.

Django-apps (manage.py plus een Django-dependency) draaien collectstatic --noinput. Als die stap mislukt, wordt de fout gelogd en loopt de build door.

Bij de start wordt PYTHONUNBUFFERED=1 gezet. Django krijgt ook DJANGO_ENV=production en, als er een */wsgi.py-bestand bestaat, DJANGO_SETTINGS_MODULE.

Startcommando

  • Django: gunicorn <dir>.wsgi --bind 0.0.0.0:$PORT --workers 3
  • FastAPI / Starlette: uvicorn main:app --host 0.0.0.0 --port $PORT (of app:app als dat bestand de app bevat)
  • Flask: Gunicorn op app:app, application:app of wsgi:app
  • Anders python app.py of python main.py

Zet gunicorn of uvicorn in je dependencies als je op die standaardcommando's vertrouwt. Overschrijf ze met een Procfile. Je app moet luisteren op PORT.

Past geen van deze gevallen, dan moet een Procfile de processen definiëren: minstens één geldige regel anders dan release:, bijvoorbeeld web: of worker:. Anders faalt de build met een foutmelding in plaats van de app-map uit te leveren. Een app met alleen een worker (bijvoorbeeld een bot) zonder web:-regel heeft een eigen proces nodig: maak op het tabblad Processes een proces aan met dezelfde naam als de regel in het Procfile (bijvoorbeeld worker, zonder poort) en zet het proces web op 0 instanties.

Geef je agent een cloud.

Ontvang tot € 15 welkomsttegoed bij je registratie.

Doorgaan met GitHub

of met e-mail

Blijf op de hoogte.

Productnieuws, geen spam. Je kunt je altijd weer afmelden.