Python

Detetado através de requirements.txt, Pipfile ou pyproject.toml.

Guias de deploy passo a passo: Python, Django, Flask, FastAPI, Streamlit.

Consulte Buildpackspara ver como funcionam a deteção e a política de versões.

Deteção

requirements.txt, Pipfile ou pyproject.toml no Base directory.

Versões

A versão por omissão é o Python 3.13. Linhas publicadas, à data de setembro de 2026: 3.10-3.14. Obtém o patch mais recente da versão minor pedida.

Para fixar a versão, por esta ordem:

  • .python-version
  • runtime.txt (python-3.12 também serve)
  • requires-python em pyproject.toml (um intervalo escolhe a versão publicada compatível mais alta)

Instalação 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 com [tool.poetry] e sem lockfile: Poetry
  • Caso contrário: pip install .

O builder instala o pip, o Poetry e o Pipenv em versões fixas que funcionam em todas as versões de Python suportadas. A Nodion atualiza-as regularmente; num deploy sem cache, a aplicação recebe as versões atuais.

As aplicações Django (manage.py e uma dependência Django) executam collectstatic --noinput. Uma falha nesse passo fica registada nos logs e não faz falhar o build.

No arranque, é definido PYTHONUNBUFFERED=1. O Django recebe também DJANGO_ENV=production e, quando existe um ficheiro */wsgi.py, DJANGO_SETTINGS_MODULE.

Comando de arranque

  • Django: gunicorn <dir>.wsgi --bind 0.0.0.0:$PORT --workers 3
  • FastAPI / Starlette: uvicorn main:app --host 0.0.0.0 --port $PORT (ou app:app se a aplicação estiver nesse ficheiro)
  • Flask: Gunicorn em app:app, application:app ou wsgi:app
  • Caso contrário, python app.py ou python main.py

Inclua gunicorn ou uvicorn nas suas dependências se depender destes comandos por omissão. Pode substituí-los por um Procfile. A aplicação deve escutar em PORT.

Se nenhum destes casos se aplicar, o Procfile tem de definir os processos: pelo menos uma linha válida diferente de release:, por exemplo web: ou worker:. Caso contrário, o build falha com um erro em vez de servir o diretório da aplicação. Uma aplicação que só tenha um worker (um bot, por exemplo) e não tenha uma linha web: precisa de um processo próprio: no separador Processes, crie um processo com o mesmo nome da entrada do Procfile (por exemplo worker, sem porta) e defina o processo web para 0 instâncias.

Dê uma cloud ao seu agente.

Ganhe até 15 € de crédito ao registar-se.

Continuar com o GitHub

ou com e-mail

Fique a par das novidades.

Novidades do produto, sem spam. Pode cancelar a subscrição a qualquer momento.