What detection looks for
A project with requirements.txt, pyproject.toml, or Pipfile (and no package.json) deploys as Python. The framework — and therefore the start command — comes from your dependencies:
| Dependency | How it starts |
|---|---|
streamlit | streamlit run app.py on the assigned port |
gradio | your entry file, with Gradio’s server env preset |
fastapi / uvicorn | uvicorn main:app |
flask / gunicorn | gunicorn against your app object |
Django (manage.py) | gunicorn against your WSGI module |
Entry-file candidates are checked in order: app.py, main.py, server.py, demo.py, and friends. A minimal FastAPI deploy is just two files:
# requirements.txt fastapi uvicorn
# main.py
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
def root():
return {"ok": True}ML apps
Heavy ML dependencies (torch, transformers, and similar) need a paid plan — the installs are multi-gigabyte and the models need the memory headroom Live provides (Plans & limits). Everyday data apps (pandas, numpy, requests) run on the free plan.
Good to know
- Python 3.11 with
piporuv-installed dependencies inside a project-local virtualenv. - Environment variables from the Env Vars tab are in
os.environat build and runtime. - Streamlit and Gradio demos deploy great from a drag-and-drop — a folder with
app.py+requirements.txtis enough. - The health check hits
/— Streamlit, Gradio, FastAPI and Flask all answer it by default.