Thanks to visit codestin.com
Credit goes to github.com

Skip to content

[Bug]: Unable to install matplotlib (editable mode) in Github Codespace #29852

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
thedatacurious opened this issue Apr 1, 2025 · 4 comments

Comments

@thedatacurious
Copy link
Contributor

Bug summary

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

Code for reproduction

python -m pip install --no-build-isolation --config-settings=editable-verbose=true --editable .

Actual outcome

(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

Additional information

@story645 is able to replicate the issue

Operating system

No response

Matplotlib Version

Unable to get version, running the prompt returns the same Import Error message

Matplotlib Backend

No response

Python version

No response

Jupyter version

No response

Installation

pip

@scottshambaugh
Copy link
Contributor

scottshambaugh commented Apr 1, 2025

Also started running into this today locally, with the same symbol _ZN3agg10curve3_div4initEdddddd

ImportError: /mnt/c/Users/Scott/Documents/Documents/Coding/matplotlib/build/cp312/src/_path.cpython-312-x86_64-linux-gnu.so: undefined symbol: _ZN3agg10curve3_div4initEdddddd

@QuLogic
Copy link
Member

QuLogic commented 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
Copy link
Contributor

Yes, export AR=$GCC_AR before building resolves it!

@QuLogic
Copy link
Member

QuLogic commented 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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants