Skip to content

Python

Run a Python project from GitHub, no virtualenv required.

Paste a link to a Python repository. pyrovue picks the Python version it asks for, installs its packages with the tool it uses, runs the migrations and starts the app, then gives you the live preview, a terminal and the files.

What it reads

The files a Python project already has.

Python version.python-version · runtime.txt
Boxes start on Python 3.11 in an active virtual environment, and switch to the version the repo pins.
Packagespip · uv · Poetry · Pipenv
requirements*.txt, pyproject.toml, Pipfile and setup.py, installed with the tool the repo uses, or with uv when that's quicker.
Imports under another namecv2 · PIL · yaml · …
When an app fails on a module that isn't installed, the right package is added (cv2 is opencv-python-headless, PIL is Pillow) and the app is started again.
Native librariesDebian -dev packages
A build that fails for a missing C header gets the system package that provides it, then retries.
DatabasesPostgres · MySQL · Redis
When a Compose file asks for them, they run inside the box and the app's settings point at them.

Frameworks

Started the way each one expects.

Djangomanage.py migrate · runserver
Migrations run before the first start, and the development server is opened to the preview.
FastAPIuvicorn
The ASGI app is found and served with uvicorn. The interactive docs at /docs are in the preview.
Flaskflask run
The app module is found and started on a port the preview can reach.
Streamlit and Gradiostreamlit run · python app.py
Dashboards and demos open in the preview the same way they would on your laptop, without the install.
Scripts and CLIsthe terminal
A package with no web app is installed and left ready in the terminal, so you can run it or its tests.

Limits

What won't run.

There are no GPUs, so CUDA code and model training won't run, and very large ML dependencies may not fit in 4 GB of memory on the free plan (Pro boxes have 8 GB). Notebook-only repositories are better served by Binder today. For anything pyrovue can't guess, a pyrovue.json file lists the setup commands, the start command and the port.

Tell it how

A FastAPI backend and a Vite frontend, in one box.

{
  "setup": ["cd /workspace/backend && pip install -r requirements.txt", "npm install"],
  "services": [{ "cwd": "backend", "start": "uvicorn main:app --port 8000", "port": 8000 }],
  "cwd": "frontend",
  "start": "npm run dev",
  "port": 5173
}

The backend starts in the background, the frontend is shown in the preview and reaches the API through its dev server's proxy. The support page has the full reference.

Questions

Asked often.

Whatever the repo pins in .python-version or runtime.txt; the runtime is fetched on demand. Without a pin, boxes use Python 3.11.

Yes. The terminal has the project's virtual environment active, so pip install or uv pip install works as usual.

Not yet. environment.yml isn't read; a requirements.txt or pyproject.toml is.

Run the repo you bookmarked and never tried.

Hobby is free and needs no card. Paste a link and your first box is up in about a minute.