Running the instructions to install Matplotlib in editable mode and verify installation while in Github Codespace leads to an error:
ImportError: /workspaces/matplotlib/build/cp312/src/_path.cpython-312-x86_[64-linux-gnu.so](http://64-linux-gnu.so/): undefined symbol: _ZN3agg10curve3_div4initEdddddd
(mpl-dev) @thedatacurious ➜ /workspaces/matplotlib (doc-branch) $ pip install --no-build-isolation --config-settings=editable-verbose=true --editable .
Obtaining file:///workspaces/matplotlib
Checking if build backend supports build_editable ... done
Preparing editable metadata (pyproject.toml) ... done
Requirement already satisfied: contourpy>=1.0.1 in /home/codespace/.local/lib/python3.12/site-packages (from matplotlib==0.1.0.dev52213+g5d722a9) (1.3.1)
Requirement already satisfied: cycler>=0.10 in /home/codespace/.local/lib/python3.12/site-packages (from matplotlib==0.1.0.dev52213+g5d722a9) (0.12.1)
Requirement already satisfied: fonttools>=4.22.0 in /home/codespace/.local/lib/python3.12/site-packages (from matplotlib==0.1.0.dev52213+g5d722a9) (4.55.3)
Requirement already satisfied: kiwisolver>=1.3.1 in /home/codespace/.local/lib/python3.12/site-packages (from matplotlib==0.1.0.dev52213+g5d722a9) (1.4.7)
Requirement already satisfied: numpy>=1.23 in /home/codespace/.local/lib/python3.12/site-packages (from matplotlib==0.1.0.dev52213+g5d722a9) (2.2.0)
Requirement already satisfied: packaging>=20.0 in /home/codespace/.local/lib/python3.12/site-packages (from matplotlib==0.1.0.dev52213+g5d722a9) (24.2)
Requirement already satisfied: pillow>=9 in /home/codespace/.local/lib/python3.12/site-packages (from matplotlib==0.1.0.dev52213+g5d722a9) (11.0.0)
Requirement already satisfied: pyparsing>=2.3.1 in /home/codespace/.local/lib/python3.12/site-packages (from matplotlib==0.1.0.dev52213+g5d722a9) (3.2.0)
Requirement already satisfied: python-dateutil>=2.7 in /home/codespace/.local/lib/python3.12/site-packages (from matplotlib==0.1.0.dev52213+g5d722a9) (2.9.0.post0)
Requirement already satisfied: six>=1.5 in /home/codespace/.local/lib/python3.12/site-packages (from python-dateutil>=2.7->matplotlib==0.1.0.dev52213+g5d722a9) (1.17.0)
Building wheels for collected packages: matplotlib
Building editable for matplotlib (pyproject.toml) ... done
Created wheel for matplotlib: filename=matplotlib-0.1.0.dev52213+g5d722a9-cp312-cp312-linux_x86_64.whl size=10310 sha256=7ac60e5ad72b00ceaf9fc1f3dbc55e5979f22ecff0a418b2e2cc1d718ff878fc
Stored in directory: /tmp/pip-ephem-wheel-cache-8w0d3c06/wheels/12/a2/a8/efadc28c14fa1750547f26b6cb4f3e357cd1fa0797dc7e1949
Successfully built matplotlib
Installing collected packages: matplotlib
Attempting uninstall: matplotlib
Found existing installation: matplotlib 0.1.0.dev52212+g8eb6289
Uninstalling matplotlib-0.1.0.dev52212+g8eb6289:
Successfully uninstalled matplotlib-0.1.0.dev52212+g8eb6289
ERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts.
seaborn 0.13.2 requires matplotlib!=3.6.1,>=3.4, but you have matplotlib 0.1.0.dev52213+g5d722a9 which is incompatible.
Successfully installed matplotlib-0.1.0.dev52213+g5d722a9
(mpl-dev) @thedatacurious ➜ /workspaces/matplotlib (doc-branch) $ python -c "import matplotlib; print(matplotlib.__file__)"
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "/workspaces/matplotlib/lib/matplotlib/__init__.py", line 161, in <module>
from . import _api, _version, cbook, _docstring, rcsetup
File "/workspaces/matplotlib/lib/matplotlib/rcsetup.py", line 28, in <module>
from matplotlib.colors import Colormap, is_color_like
File "/workspaces/matplotlib/lib/matplotlib/colors.py", line 57, in <module>
from matplotlib import _api, _cm, cbook, scale, _image
File "/workspaces/matplotlib/lib/matplotlib/scale.py", line 39, in <module>
from matplotlib.ticker import (
File "/workspaces/matplotlib/lib/matplotlib/ticker.py", line 144, in <module>
from matplotlib import transforms as mtransforms
File "/workspaces/matplotlib/lib/matplotlib/transforms.py", line 49, in <module>
from matplotlib._path import affine_transform, count_bboxes_overlapping_bbox
ImportError: /workspaces/matplotlib/build/cp312/src/_path.cpython-312-x86_64-linux-gnu.so: undefined symbol: _ZN3agg10curve3_div4initEdddddd
Expected outcome
python -c "import matplotlib; print(matplotlib.__file__)"
should return :
<matplotlib_local_repo>\lib\matplotlib\__init__.py
OK, this is because conda-forge's compiler activation package sets AR to one that doesn't support all of GCC's plugins, but instead sets the (non-standard?) GCC_AR to it. Meson doesn't find this, of course, because it's non-standard mesonbuild/meson#13324
I didn't get around to writing an issue asking why conda-forge does it this way.
I have no idea what, but it looks like something fixed this.
I just made a fresh conda dev environment and forgot to set the environment variable. The build seemed to work fine anyway and I successfully made a simple plot and ran a test. This was on RHEL9.
So I then set up a new codespace instance and successfully ran pytest on one test module with no extra steps. I copied the install command verbatim from the contributors' guide.
Activity
scottshambaugh commented on Apr 1, 2025
Also started running into this today locally, with the same symbol _ZN3agg10curve3_div4initEdddddd
QuLogic commented on Apr 2, 2025
Likely this is because #28352 was merged. I'm not sure how @dstansby tested it as working, but it may have to be reverted.
Does setting export AR=$GCC_AR before building work?
scottshambaugh commented on Apr 2, 2025
Yes, export AR=$GCC_AR before building resolves it!
QuLogic commented on Apr 2, 2025
OK, this is because conda-forge's compiler activation package sets AR to one that doesn't support all of GCC's plugins, but instead sets the (non-standard?) GCC_AR to it. Meson doesn't find this, of course, because it's non-standard mesonbuild/meson#13324
I didn't get around to writing an issue asking why conda-forge does it this way.
rcomer commented on Oct 5, 2026
I have no idea what, but it looks like something fixed this.
I just made a fresh conda dev environment and forgot to set the environment variable. The build seemed to work fine anyway and I successfully made a simple plot and ran a test. This was on RHEL9.
So I then set up a new codespace instance and successfully ran pytest on one test module with no extra steps. I copied the install command verbatim from the contributors' guide.