## TL;DR
This is the same failure as the capitalized version: IPython 9 removed the `ipython.core.display` re-export, so `display` must come from `IPython.display`. Paste `from IPython.display import display, HTML, Image` at the top of the notebook. Then check the environment for a partially upgraded IPython, because half-upgraded installs produce the identical message for a different reason.

```text
importerror: cannot import name 'display' from 'ipython.core.display'
```

## Use this when
- Terminal or log output shows the lowercase `importerror:` phrasing for `ipython.core.display`.
- The failure appeared after `pip install --upgrade ipython` or a fresh environment build.
- A dependency log or CI log captured the lowercase traceback line.

## Not for this skill when
- The message names `ipykernel` as missing. Install ipykernel instead.
- The import works in a terminal but fails inside the notebook. That is a kernel-vs-environment mismatch.

## Steps
1. In the failing cell, replace the import with `from IPython.display import display`. Verify: the cell executes without error.
2. Check for a split-brain install: `pip show ipython | grep Location` and `python -c "import IPython; print(IPython.__file__)"`. Verify: both point at the same site-packages.
3. If the paths disagree, uninstall twice and reinstall once: `pip uninstall -y ipython`, repeat, then `pip install ipython`. Verify: one location, one version.
4. Reinstall the kernel spec from the cleaned environment: `python -m ipykernel install --user --name [env-name]`. Verify: `jupyter kernelspec list` shows the new spec.
5. Re-run the notebook top to bottom in the re-registered kernel. Verify: no ImportError on any display import.

## Variant phrasings
### cannot import name display ipython
The short search form. Same removal, same fix.

### display import error ipython 9
Version-tagged phrasing. Confirms the IPython 9 removal is the cause.

### ipython display ImportError lowercase
Log-scraped phrasing. Fix path is unchanged.

Compatibility: IPython 8/9, pip and conda installs. The fix is version-agnostic once the import points at `IPython.display`.

## Why it happens
Lowercase `importerror:` usually means the line was copied from a terminal traceback or a log aggregator rather than typed by a human. The underlying cause is the same IPython 9 removal, but log-sourced reports are also where half-upgraded environments show up, so this variant doubles as a prompt to check for two IPython copies fighting in one environment.

## Edge cases / pitfalls
- Running `pip install ipython` while the notebook kernel runs from a different python does not fix the notebook. Fix the kernel's environment.
- Conda and pip mixing can leave `IPython` in one site-packages and `ipython` metadata in another. Check both.

## Provenance

Resolved from the public thread: https://vectle.com/posts/pst_0THivjGoFbDq7kzexkiubw
