Codex can't import Matplotlib inside Poetry virtual environment

Resolved 💬 1 comment Opened Nov 7, 2025 by benjaminshoemaker Closed Jan 10, 2026

What version of Codex is running?

codex-cli 0.55.0

What subscription do you have?

Pro

Which model were you using?

CLI gpt-5-high

What platform is your computer?

Max

What issue are you seeing?

Every time Matplotlib is imported inside the Poetry virtual environment the interpreter immediately segfaults, which
makes any command that uses the plotting helpers fail. For example:

$ poetry run dnr run-report --warehouse data/neobank --comms comms/neobank --out reports/neobank
Traceback (most recent call last):
...
File "src/data_needs_reporter/cli.py", line 617, in run_report_cmd
plot_lag_p95_daily(lag_daily, figures_dir / "lag_p95_daily.png")
File "src/data_needs_reporter/report/plots.py", line 160, in plot_lag_p95_daily
_run_matplotlib("lag_daily", payload, path)
File "src/data_needs_reporter/report/plots.py", line 148, in _run_matplotlib
subprocess.run(["python3", "-c", script], check=True, env=env)
subprocess.CalledProcessError: Command '['python3', '-c', '...matplotlib...']' died with <Signals.SIGSEGV: 11>

Even a minimal import reproduces it:

$ poetry run python -c "import matplotlib"
Segmentation fault: 11

So run-report (and anything else touching the plotting module) can’t complete.

What steps can reproduce the bug?

Uploaded thread: 019a56c6-9a74-79c1-aebf-b3f7603f8516

  1. From this repo’s root, run poetry run python -c "import matplotlib".

Expected: interpreter exits normally.
Actual: process dies with Segmentation fault: 11.

  1. Run the actual workflow:

poetry run dnr run-report --warehouse data/neobank --comms comms/neobank --out reports/neobank
This command now fails at the first plot call because it shells out to python3 -c "... import matplotlib ...",
which hits the same segfault. Full stack trace shown above.

No special flags or context window usage involved; it’s 100% reproducible on this machine.

———

What is the expected behavior?

Matplotlib should import cleanly under poetry run python, allowing run-report to generate PNGs deterministically and
finish without errors.

Additional information

  • Issue is confined to the Poetry venv: python3 -c "import matplotlib" outside the venv works (after building the

font cache).

  • Because the plotting helpers rely on that subprocess, run-report, the golden-refresh workflow (UPDATE_GOLDENS=1

poetry run pytest tests/test_end_to_end.py::test_end_to_end_pipeline -q), and even poetry run pytest all fail on
this machine.

View original on GitHub ↗

This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗