mplcairo icon indicating copy to clipboard operation
mplcairo copied to clipboard

cannot import name '_mplcairo' from partially initialized module 'mplcairo'

Open DT-one opened this issue 1 year ago • 3 comments

Can't run the version command, but can share this (I am trying a reinstall):

(base) C:\Users\xxxxx>pip uninstall mplcairo
Found existing installation: mplcairo 0.5
Uninstalling mplcairo-0.5:
  Would remove:
    c:\users\xxxxx\devopssetupprograms\anaconda\lib\site-packages\mplcairo-0.5.dist-info\*
    c:\users\xxxxx\devopssetupprograms\anaconda\lib\site-packages\mplcairo.pth
    c:\users\xxxxx\devopssetupprograms\anaconda\lib\site-packages\mplcairo\*
Proceed (Y/n)? y
  Successfully uninstalled mplcairo-0.5

Not sure what extra detail I can provide. Can't even import it. Something looks fundamentally wrong.

import matplotlib
matplotlib.use("module://mplcairo.base")

Traceback (most recent call last):

  Cell In[1], line 2
    matplotlib.use("module://mplcairo.base")

  File ~\DevopsSetupPrograms\Anaconda\Lib\site-packages\matplotlib\__init__.py:1249 in use
    plt.switch_backend(name)

  File ~\DevopsSetupPrograms\Anaconda\Lib\site-packages\matplotlib\pyplot.py:342 in switch_backend
    module = importlib.import_module(cbook._backend_module_name(newbackend))

  File ~\DevopsSetupPrograms\Anaconda\Lib\importlib\__init__.py:90 in import_module
    return _bootstrap._gcd_import(name[level:], package, level)

  File <frozen importlib._bootstrap>:1387 in _gcd_import

  File <frozen importlib._bootstrap>:1360 in _find_and_load

  File <frozen importlib._bootstrap>:1310 in _find_and_load_unlocked

  File <frozen importlib._bootstrap>:488 in _call_with_frames_removed

  File <frozen importlib._bootstrap>:1387 in _gcd_import

  File <frozen importlib._bootstrap>:1360 in _find_and_load

  File <frozen importlib._bootstrap>:1331 in _find_and_load_unlocked

  File <frozen importlib._bootstrap>:935 in _load_unlocked

  File <frozen importlib._bootstrap_external>:995 in exec_module

  File <frozen importlib._bootstrap>:488 in _call_with_frames_removed

  File ~\DevopsSetupPrograms\Anaconda\Lib\site-packages\mplcairo\__init__.py:27
    from . import _mplcairo

ImportError: cannot import name '_mplcairo' from partially initialized module 'mplcairo' (most likely due to a circular import) (C:\Users\mu281f\DevopsSetupPrograms\Anaconda\Lib\site-packages\mplcairo\__init__.py)

DT-one avatar Sep 04 '24 07:09 DT-one

Can you list the contents of ~\DevopsSetupPrograms\Anaconda\Lib\site-packages\mplcairo\?

anntzer avatar Sep 04 '24 12:09 anntzer

When installed using pip install mplcairo

C:\Users\xxxxx\DevopsSetupPrograms\Anaconda\Lib\site-packages\mplcairo>dir
 Volume in drive C is Windows
 Volume Serial Number is 

 Directory of C:\Users\xxxxxx\DevopsSetupPrograms\Anaconda\Lib\site-packages\mplcairo

09/05/2024  11:14 AM    <DIR>          .
09/05/2024  11:14 AM    <DIR>          ..
09/05/2024  11:14 AM            17,664 base.py
09/05/2024  11:14 AM             1,373 gtk.py
09/05/2024  11:14 AM             1,486 gtk_native.py
09/05/2024  11:14 AM               605 macosx.py
09/05/2024  11:14 AM             2,131 multipage.py
09/05/2024  11:14 AM             2,219 qt.py
09/05/2024  11:14 AM               815 tk.py
09/05/2024  11:14 AM             1,385 wx.py
09/05/2024  11:14 AM               664 _backports.py
09/05/2024  11:14 AM             2,422 _util.py
09/05/2024  11:14 AM               422 _version.py
09/05/2024  11:14 AM             3,234 __init__.py
09/05/2024  11:14 AM    <DIR>          __pycache__
              12 File(s)         34,420 bytes
               3 Dir(s)  90,969,747,456 bytes free

I mean, the install seems to run fine if you can deduce anything from its output. The cache is probably from yesterday afternoon

(base) C:\Users\xxxxx>pip install mplcairo
Collecting mplcairo
  Using cached mplcairo-0.5-cp312-cp312-win_amd64.whl
Requirement already satisfied: matplotlib>=2.2 in c:\users\xxxxx\devopssetupprograms\anaconda\lib\site-packages (from mplcairo) (3.8.4)
Requirement already satisfied: pillow in c:\users\xxxxx\devopssetupprograms\anaconda\lib\site-packages (from mplcairo) (10.3.0)
Requirement already satisfied: contourpy>=1.0.1 in c:\users\xxxxx\devopssetupprograms\anaconda\lib\site-packages (from matplotlib>=2.2->mplcairo) (1.2.0)
Requirement already satisfied: cycler>=0.10 in c:\users\xxxxx\devopssetupprograms\anaconda\lib\site-packages (from matplotlib>=2.2->mplcairo) (0.11.0)
Requirement already satisfied: fonttools>=4.22.0 in c:\users\xxxxx\devopssetupprograms\anaconda\lib\site-packages (from matplotlib>=2.2->mplcairo) (4.51.0)
Requirement already satisfied: kiwisolver>=1.3.1 in c:\users\xxxxx\devopssetupprograms\anaconda\lib\site-packages (from matplotlib>=2.2->mplcairo) (1.4.4)
Requirement already satisfied: numpy>=1.21 in c:\users\xxxxx\devopssetupprograms\anaconda\lib\site-packages (from matplotlib>=2.2->mplcairo) (1.26.4)
Requirement already satisfied: packaging>=20.0 in c:\users\xxxxx\devopssetupprograms\anaconda\lib\site-packages (from matplotlib>=2.2->mplcairo) (23.2)
Requirement already satisfied: pyparsing>=2.3.1 in c:\users\xxxxx\devopssetupprograms\anaconda\lib\site-packages (from matplotlib>=2.2->mplcairo) (3.0.9)
Requirement already satisfied: python-dateutil>=2.7 in c:\users\xxxxx\devopssetupprograms\anaconda\lib\site-packages (from matplotlib>=2.2->mplcairo) (2.9.0.post0)
Requirement already satisfied: six>=1.5 in c:\users\xxxxx\devopssetupprograms\anaconda\lib\site-packages (from python-dateutil>=2.7->matplotlib>=2.2->mplcairo) (1.16.0)
Installing collected packages: mplcairo
Successfully installed mplcairo-0.5

(base) C:\Users\xxxxx>

DT-one avatar Sep 05 '24 01:09 DT-one

The install is broken; the extension module _mplcairo.dll is missing.

anntzer avatar Sep 05 '24 10:09 anntzer

Released mplcairo 0.6 with wheels for Python up to 3.13, so you should be able to just install from PyPI.

anntzer avatar Nov 01 '24 22:11 anntzer