tiangolo/fastapi · critical · RuntimeError

To use the fastapi command, please install "fastapi[standard

Error message

To use the fastapi command, please install "fastapi[standard]":

	pip install "fastapi[standard]"

What it means

RuntimeError raised by fastapi/cli.py:12 when the `fastapi` console script is invoked but the optional `fastapi_cli` package cannot be imported. The cli wrapper (try: from fastapi_cli.cli import main) sets cli_main=None on ImportError, and main() then prints guidance and re-raises RuntimeError telling the user to install the 'standard' extra. The 'standard' extra bundles fastapi-cli (uvicorn, etc.) needed for `fastapi dev`/`fastapi run`.

Source

Thrown at fastapi/cli.py:12

try:
    from fastapi_cli.cli import main as cli_main

except ImportError:  # pragma: no cover
    cli_main = None  # type: ignore


def main() -> None:
    if not cli_main:  # type: ignore[truthy-function]
        message = 'To use the fastapi command, please install "fastapi[standard]":\n\n\tpip install "fastapi[standard]"\n'
        print(message)
        raise RuntimeError(message)  # noqa: B904
    cli_main()

View on GitHub (pinned to 42a41db11f)

Solutions

  1. Install the standard extra: pip install 'fastapi[standard]'.
  2. Or install fastapi-cli directly: pip install fastapi-cli.
  3. If you intentionally avoid the extra, run the app with uvicorn directly: uvicorn main:app --reload.
  4. Re-create/activate the correct virtualenv if fastapi-cli exists in a different one.

Example fix

# before
pip install fastapi
fastapi dev main.py
# after
pip install 'fastapi[standard]'
fastapi dev main.py
Defensive patterns

Strategy: validation

Validate before calling

import importlib.util, sys, subprocess
if importlib.util.find_spec('fastapi_cli') is None:
    subprocess.check_call([sys.executable, '-m', 'pip', 'install', 'fastapi[standard]'])

Type guard

def fastapi_cli_available() -> bool:
    import importlib.util
    return importlib.util.find_spec('fastapi_cli') is not None

Try / catch

try:
    from fastapi_cli.cli import main as cli_main
    cli_main()
except (ImportError, RuntimeError):
    print('fastapi-cli missing — falling back to uvicorn')
    import uvicorn
    uvicorn.run('main:app', reload=True)

Prevention

When it happens

Trigger: Running `fastapi dev` or `fastapi run` (the entry point fastapi.cli:main) in an environment where only the bare `fastapi` wheel is installed and fastapi-cli is absent. Triggered exactly when the `from fastapi_cli.cli import main as cli_main` import at cli.py:2 fails.

Common situations: Installing `pip install fastapi` instead of `pip install 'fastapi[standard]'`; a slim Docker image that pip-installs only fastapi; a CI env pinning fastapi without extras; fastapi-cli uninstalled during a dependency cleanup.

Related errors


AI-assisted analysis of tiangolo/fastapi@42a41db11f (2026-08-04). Data as JSON: /data/errors/8ae853f2e1da4213.json. Report an issue: GitHub.