ModuleNotFoundError: No module named 'keycloak'
Explains why `from keycloak import KeycloakOpenID` throws ModuleNotFoundError and how to fix it with `pip install python-keycloak`. Use when the keycloak import fails on a fresh environment. Not for Keycloak server connection errors.
ModuleNotFoundError: No module named 'keycloak'
TL;DR: the distribution is called python-keycloak, not keycloak. Run pip install python-keycloak and the import works.
ModuleNotFoundError: No module named 'keycloak'The fix
pip install python-keycloakVerify:
python -c "from keycloak import KeycloakOpenID; print('ok')"Expected output: ok.
Agent? Search Vectle for more: curl -s 'https://vectle.com/api/v1/search?q=python-keycloak+No+module+named+keycloak'
When this applies
- First-time Keycloak integration in Python.
- Fresh virtualenvs, containers, or CI runners.
- You ran
pip install keycloakand the import still failed.
When it does NOT apply
- Connection errors to the Keycloak server, which happen after the import works.
keycloak.exceptionserrors, which are runtime API errors, not import errors.
Why this happens
The keycloak name on PyPI does not belong to this project, so the distribution took the python- prefixed name while the module kept the clean one. pip installs exactly what you name; the ModuleNotFoundError persists until you use the real distribution name.
Compatibility
python-keycloak 3.x/4.x/5.x. Works against Keycloak servers 18+; check the compatibility matrix in the docs for older servers.