ctjacobs/pyqso

matplotlib >=3.8.0 breaks pyqso when cartopy is installed

charims opened this issue · 2 comments

pyqso was working fine until I installed cartopy to get the map to show. Then it failed to start. Running from the cli gives me:

$ pyqso
/usr/bin/pyqso:33: DeprecationWarning: pkg_resources is deprecated as an API. See https://setuptools.pypa.io/en/latest/pkg_resources.html
  import pkg_resources
INFO:root:PyQSO version 1.1.0
INFO:root:Using version 1.26.1 of numpy.
INFO:root:Using version 3.8.1 of matplotlib.
INFO:root:Using version 0.22.0 of cartopy.
Traceback (most recent call last):
  File "/usr/bin/pyqso", line 174, in <module>
    application = PyQSO(args.logbook)  # Populate the main window and show it.
                  ^^^^^^^^^^^^^^^^^^^
  File "/usr/bin/pyqso", line 95, in __init__
    self.toolbox = Toolbox(self)
                   ^^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/pyqso/toolbox.py", line 41, in __init__
    self.world_map = WorldMap(self.application)
                     ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/pyqso/world_map.py", line 163, in __init__
    toolbar = NavigationToolbar(self.canvas, self.application.window)
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: NavigationToolbar2GTK3.__init__() takes 2 positional arguments but 3 were given

Running archlinux with the install from the AUR. Looks like there was a change since matplotlib/matplotlib@0968f71#diff-b82974fdd131ae34e8637914da0f13f02f0ea4b5c57b7a8a5789a6faad7ebb5a

I tried dropping the window argument, then the application starts fine, but there's still no map.

I have this happening as well. It ran straight from the unzipped folder. I installed the requirements and now:

INFO:root:PyQSO version 1.1.0
WARNING:root:Could not import the Hamlib module!
INFO:root:Using version 1.26.0 of numpy.
INFO:root:Using version 3.8.0 of matplotlib.
INFO:root:Using version 0.22.0 of cartopy.
WARNING:root:Could not import the Hamlib module!
Traceback (most recent call last):
  File "/home/jason/Downloads/pyqso-master/pyqso/pyqso.py", line 153, in <module>
    application = PyQSO(args.logbook)  # Populate the main window and show it.
                  ^^^^^^^^^^^^^^^^^^^
  File "/home/jason/Downloads/pyqso-master/pyqso/pyqso.py", line 74, in __init__
    self.toolbox = Toolbox(self)
                   ^^^^^^^^^^^^^
  File "/home/jason/Downloads/pyqso-master/pyqso/toolbox.py", line 24, in __init__
    self.world_map = WorldMap(self.application)
                     ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/jason/Downloads/pyqso-master/pyqso/world_map.py", line 145, in __init__
    toolbar = NavigationToolbar(self.canvas, self.application.window)
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: NavigationToolbar2GTK3.__init__() takes 2 positional arguments but 3 were given

same error here:

self.toolbar_2d = NavigationToolbar(self.canvas_2d, self.window_path)
TypeError: NavigationToolbar2GTK3.init() takes 2 positional arguments but 3 were given