{"record":{"id":"8ae853f2e1da4213","repo":"tiangolo/fastapi","slug":"to-use-the-fastapi-command-please-install-fastap","errorCode":null,"errorMessage":"To use the fastapi command, please install \"fastapi[standard]\":\n\n\tpip install \"fastapi[standard]\"\n","messagePattern":"To use the fastapi command, please install \"fastapi\\[standard\\]\":\n\n\tpip install \"fastapi\\[standard\\]\"\n","errorType":"console","errorClass":"RuntimeError","httpStatus":null,"severity":"error","filePath":"fastapi/cli.py","lineNumber":12,"sourceCode":"try:\n    from fastapi_cli.cli import main as cli_main\n\nexcept ImportError:  # pragma: no cover\n    cli_main = None  # type: ignore\n\n\ndef main() -> None:\n    if not cli_main:  # type: ignore[truthy-function]\n        message = 'To use the fastapi command, please install \"fastapi[standard]\":\\n\\n\\tpip install \"fastapi[standard]\"\\n'\n        print(message)\n        raise RuntimeError(message)  # noqa: B904\n    cli_main()\n","sourceCodeStart":1,"sourceCodeEnd":14,"githubUrl":"https://github.com/tiangolo/fastapi/blob/3e8d1526d83a90aaf7d6eb6dc682bf150f180b25/fastapi/cli.py#L1-L14","documentation":"RuntimeError raised by fastapi/cli.py:main() when the optional fastapi_cli package cannot be imported (the top-level try/except sets cli_main = None). The function prints the install hint and re-raises so the `fastapi` console script aborts. It exists because FastAPI splits the CLI / dev server out of the core wheel into the fastapi[standard] extra.","triggerScenarios":"Running the `fastapi` command (e.g. `fastapi dev`, `fastapi run`) in an environment where only the slim `fastapi` package is installed and not `fastapi[standard]` or `fastapi-cli`.","commonSituations":"Installing `pip install fastapi` (slim) instead of `pip install \"fastapi[standard]\"`; a minimal container/CI image that pins the core wheel; pinning fastapi without its CLI extras; uvicorn installed but the CLI launcher shim still expecting fastapi-cli.","solutions":["Install the standard extra: pip install \"fastapi[standard]\".","Or install the CLI directly: pip install fastapi-cli.","Run the app with uvicorn directly (uvicorn main:app) if you do not want the CLI.","Re-check requirements.txt / pyproject for a bare `fastapi` pin and change it to fastapi[standard]."],"exampleFix":"# before\npip install fastapi\nfastapi dev app.py\n# -> RuntimeError: To use the fastapi command, please install \"fastapi[standard]\"\n\n# after\npip install \"fastapi[standard]\"\nfastapi dev app.py","handlingStrategy":"fallback","validationCode":"# Detect the missing CLI extra before launching the command\nimport importlib.util, sys\nif importlib.util.find_spec(\"fastapi_cli\") is None:\n    print(\"fastapi[standard] not installed; install it or use uvicorn directly\")\n    sys.exit(1)","typeGuard":null,"tryCatchPattern":"try:\n    from fastapi_cli.cli import main as cli_main\nexcept ImportError:\n    # fallback: run via uvicorn instead of the fastapi CLI\n    import uvicorn\n    uvicorn.run(\"main:app\", host=\"127.0.0.1\", port=8000)\nelse:\n    cli_main()","preventionTips":["Pin `fastapi[standard]` (not bare `fastapi`) in requirements when you need the CLI.","Add a CI step that asserts the `fastapi` console entry point is importable.","Document which environments use the slim vs standard install.","Prefer `uvicorn module:app` in containers that intentionally ship slim."],"tags":["cli","installation","fastapi","packaging","dependency"],"backgroundTag":null,"analyzedSha":"3e8d1526d83a90aaf7d6eb6dc682bf150f180b25","analyzedAt":"2026-08-11T02:34:52.986Z","contentChangedAt":null,"schemaVersion":2},"datasetVersion":"2026-09-23T08:17:48.524Z"}