Python

Rilevato da requirements.txt, Pipfile o pyproject.toml.

Guide passo passo al deploy: Python, Django, Flask, FastAPI, Streamlit.

Vedi Buildpackper come funzionano il rilevamento e la politica delle versioni.

Rilevamento

requirements.txt, Pipfile o pyproject.toml nella base directory.

Versioni

La versione predefinita è Python 3.13. Versioni pubblicate (dati aggiornati a settembre 2026): 3.10-3.14. Ricevi l'ultima patch della versione minor richiesta.

Per fissare la versione, in quest'ordine:

  • .python-version
  • runtime.txt (va bene anche python-3.12)
  • requires-python in pyproject.toml (un range sceglie la versione pubblicata più alta compatibile)

Installazione e build

  • poetry.lock: Poetry, poetry install --only main
  • Pipfile.lock: Pipenv, pipenv install --deploy --system
  • requirements.txt: pip install -r requirements.txt
  • pyproject.toml con [tool.poetry] e senza lockfile: Poetry
  • Altrimenti: pip install .

Il builder installa pip, Poetry e Pipenv in versioni bloccate che funzionano su tutte le versioni di Python supportate. Le aggiorniamo regolarmente; con un deploy senza cache la tua app riceve le versioni aggiornate.

Le app Django (manage.py più una dipendenza Django) eseguono collectstatic --noinput. Un errore in questo passaggio finisce nei log e non fa fallire la build.

All'avvio viene impostato PYTHONUNBUFFERED=1. Django riceve anche DJANGO_ENV=production e, se esiste un file */wsgi.py, DJANGO_SETTINGS_MODULE.

Comando di avvio

  • Django: gunicorn <dir>.wsgi --bind 0.0.0.0:$PORT --workers 3
  • FastAPI / Starlette: uvicorn main:app --host 0.0.0.0 --port $PORT (oppure app:app se l'app si trova in quel file)
  • Flask: Gunicorn su app:app, application:app o wsgi:app
  • Altrimenti python app.py o python main.py

Aggiungi gunicorn o uvicorn alle dipendenze se ti affidi a questi comandi predefiniti. Puoi sovrascrivere il comando con un Procfile. Metti l'app in ascolto su PORT.

Se non si applica nessuno di questi casi, i processi vanno definiti nel Procfile: almeno una riga valida diversa da release:, per esempio web: o worker:. Altrimenti la build fallisce con un errore invece di servire la directory dell'app. Un'app solo worker (per esempio un bot) senza una riga web: richiede un processo dedicato: nella scheda Processes crea un processo con lo stesso nome della voce nel Procfile (per esempio worker, senza porta) e imposta il processo web a 0 istanze.

Dai al tuo agente un cloud tutto suo.

Fino a 15 € di credito quando ti registri.

Continua con GitHub

oppure con l'email

Resta aggiornato.

Novità sul prodotto, niente spam. Puoi annullare l'iscrizione quando vuoi.