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
- Install the standard extra: pip install 'fastapi[standard]'.
- Or install fastapi-cli directly: pip install fastapi-cli.
- If you intentionally avoid the extra, run the app with uvicorn directly: uvicorn main:app --reload.
- 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
- Install with pip install 'fastapi[standard]' to get fastapi-cli + uvicorn.
- Pin python-multipart/fastapi-cli in requirements.
- In slim images, install the extra explicitly.
- Fall back to `uvicorn main:app` if you intentionally avoid the extra.
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
- Form data requires "python-multipart" to be installed. It se
- Form data requires "python-multipart" to be installed. You
AI-assisted analysis of tiangolo/fastapi@42a41db11f (2026-08-04).
Data as JSON: /data/errors/8ae853f2e1da4213.json.
Report an issue: GitHub.