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-versionruntime.txt(python-3.12werkt ook)requires-pythoninpyproject.toml(bij een versiebereik wordt de hoogste passende gepubliceerde versie gekozen)
Installatie en build
poetry.lock: Poetry,poetry install --only mainPipfile.lock: Pipenv,pipenv install --deploy --systemrequirements.txt:pip install -r requirements.txtpyproject.tomlmet[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(ofapp:appals dat bestand de app bevat) - Flask: Gunicorn op
app:app,application:appofwsgi:app - Anders
python app.pyofpython 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.