TL;DR: bokeh's template module needs jinja2 and it is not installed. Run `pip install jinja2` and the import works.

## The error
```text
ImportError: cannot import name 'MACROS'
```

## Fix it
1. Install jinja2:
   ```
   pip install jinja2
   ```
   Expected: install completes.
2. Verify:
   ```
   python -c "from bokeh.plotting import figure; print('ok')"
   ```
   Expected: prints ok with no import error.

## When this applies
Use this when importing bokeh raises the MACROS error, with a traceback passing through bokeh.core.templates.

## When it does not apply
If the error names a different symbol, it is a different problem. If jinja2 is already installed, your bokeh install is corrupt; reinstall bokeh.

## Compatibility
bokeh 0.13 through 2.x era installs that did not pull jinja2 as a dependency.

## Root cause
bokeh.core.templates builds its HTML templates with jinja2 and imports names like MACROS that only exist once the template module initializes. Without jinja2 installed, the template module fails partway and the MACROS name is never defined, surfacing as this confusing import error.

## Edge cases
Modern bokeh declares its dependencies properly, so this mostly hits old installs and hand-rolled environments. If pip refuses because of a locked environment, install jinja2 with the same tool that manages the env.