Skip to content

Matplotlib 3.3 Compatibility #38

@borupdaniel

Description

@borupdaniel

The latest version of Matplotlib-base breaks GPI. The error message gives some likely culprits, either _init_toolbar or use of the basedir attribute (both should be addressed here even if only one is causing the error). Here's the output from a crash on Windows, however, this is failing on all platforms per the latest build.

Miniconda3\envs\gpi_mpl33\lib\site-packages\gpi_core\display\GPI/Matplotlib_GPI.py:88: MatplotlibDeprecationWarning:
The _init_toolbar method was deprecated in Matplotlib 3.3 and will be removed two minor releases later. Please fully initialize the toolbar in your subclass' __init__; a fully empty _init_toolbar implementation may be kept for compatibility with earlier versions of Matplotlib.
  super().__init__(canvas, parent)
Miniconda3\envs\gpi_mpl33\lib\site-packages\gpi_core\display\GPI/Matplotlib_GPI.py:91: MatplotlibDeprecationWarning:
The basedir attribute was deprecated in Matplotlib 3.3 and will be removed two minor releases later. Use os.path.join(mpl.get_data_path(), 'images') instead.
  self.basedir = os.path.join(matplotlib.rcParams[ 'datapath' ],'images')
Tue Aug  4 10:17:36 2020 - gpi.nodeAPI:113 - ERROR - initUI() failed. Miniconda3\envs\gpi_mpl33\lib\site-packages\gpi_core\display\GPI/Matplotlib_GPI.py
Traceback (most recent call last):
  File "Miniconda3\envs\gpi_mpl33\lib\site-packages\gpi\nodeAPI.py", line 111, in __init__
    self._initUI_ret = self.initUI()
  File "Miniconda3\envs\gpi_mpl33\lib\site-packages\gpi_core\display\GPI/Matplotlib_GPI.py", line 1002, in initUI
    self.addWidget('MatplotDisplay', 'Plot')
  File "Miniconda3\envs\gpi_mpl33\lib\site-packages\gpi\nodeAPI.py", line 621, in addWidget
    wdgGroup = wdgGroup(title)
  File "Miniconda3\envs\gpi_mpl33\lib\site-packages\gpi_core\display\GPI/Matplotlib_GPI.py", line 558, in __init__
    self._plotwindow = self.create_main_frame()
  File "Miniconda3\envs\gpi_mpl33\lib\site-packages\gpi_core\display\GPI/Matplotlib_GPI.py", line 737, in create_main_frame
    self.mpl_toolbar = NavbarTools(self.canvas, self)
  File "Miniconda3\envs\gpi_mpl33\lib\site-packages\gpi_core\display\GPI/Matplotlib_GPI.py", line 88, in __init__
    super().__init__(canvas, parent)
  File "Miniconda3\envs\gpi_mpl33\lib\site-packages\matplotlib\backends\backend_qt5.py", line 687, in __init__
    NavigationToolbar2.__init__(self, canvas)
  File "Miniconda3\envs\gpi_mpl33\lib\site-packages\matplotlib\backend_bases.py", line 2853, in __init__
    init()
  File "Miniconda3\envs\gpi_mpl33\lib\site-packages\gpi_core\display\GPI/Matplotlib_GPI.py", line 91, in _init_toolbar
    self.basedir = os.path.join(matplotlib.rcParams[ 'datapath' ],'images')
  File "Miniconda3\envs\gpi_mpl33\lib\site-packages\matplotlib\cbook\deprecation.py", line 203, in __set__
    return super().__set__(instance, value)
AttributeError: can't set attribute

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions