semiautomaticgit / SemiAutomaticClassificationPlugin

https://fromgistors.blogspot.com/p/semi-automatic-classification-plugin.html
Other
138 stars 50 forks source link

ImportError: cannot import name NavigationToolbar2QTAgg #2

Closed okanisis closed 8 years ago

okanisis commented 8 years ago

I've pasted the error I'm getting when starting QGIS 2.12.0, SCP 4.8.3.

Couldn't load plugin SemiAutomaticClassificationPlugin due to an error when calling its classFactory() method 

ImportError: cannot import name NavigationToolbar2QTAgg 
Traceback (most recent call last):
  File "/usr/share/qgis/python/qgis/utils.py", line 306, in startPlugin
    plugins[packageName] = package.classFactory(iface)
  File "/home/saultdon/.qgis2/python/plugins/SemiAutomaticClassificationPlugin/__init__.py", line 65, in classFactory
    from semiautomaticclassificationplugin import SemiAutomaticClassificationPlugin
  File "/usr/share/qgis/python/qgis/utils.py", line 572, in _import
    mod = _builtin_import(name, globals, locals, fromlist, level)
  File "/home/saultdon/.qgis2/python/plugins/SemiAutomaticClassificationPlugin/semiautomaticclassificationplugin.py", line 61, in 
    from ui.spectralsignaturedialog import SpectralSignatureDialog
  File "/usr/share/qgis/python/qgis/utils.py", line 572, in _import
    mod = _builtin_import(name, globals, locals, fromlist, level)
  File "/home/saultdon/.qgis2/python/plugins/SemiAutomaticClassificationPlugin/ui/spectralsignaturedialog.py", line 41, in 
    from ui_semiautomaticclassificationplugin_signature_plot import Ui_SpectralSignaturePlot
  File "/usr/share/qgis/python/qgis/utils.py", line 572, in _import
    mod = _builtin_import(name, globals, locals, fromlist, level)
  File "/home/saultdon/.qgis2/python/plugins/SemiAutomaticClassificationPlugin/ui/ui_semiautomaticclassificationplugin_signature_plot.py", line 194, in 
    from sigwidget2 import SigWidget2
  File "/usr/share/qgis/python/qgis/utils.py", line 572, in _import
    mod = _builtin_import(name, globals, locals, fromlist, level)
  File "/home/saultdon/.qgis2/python/plugins/SemiAutomaticClassificationPlugin/ui/sigwidget2.py", line 44, in 
    from matplotlib.backends.backend_qt4agg import NavigationToolbar2QTAgg as NavigationToolbar
ImportError: cannot import name NavigationToolbar2QTAgg

Python version: 2.7.10 (default, Sep  7 2015, 13:51:49) [GCC 5.2.0] 
QGIS version: 2.12.0-Lyon Lyon, 5e1d420 

Python Path:
/home/saultdon/.qgis2/python/plugins/processing
/usr/share/qgis/python
/home/saultdon/.qgis2/python
/home/saultdon/.qgis2/python/plugins
/usr/share/qgis/python/plugins
/usr/lib/python27.zip
/usr/lib/python2.7
/usr/lib/python2.7/plat-linux2
/usr/lib/python2.7/lib-tk
/usr/lib/python2.7/lib-old
/usr/lib/python2.7/lib-dynload
/home/saultdon/.local/lib/python2.7/site-packages
/usr/lib/python2.7/site-packages
/usr/lib/python2.7/site-packages/gtk-2.0
/usr/lib/python2.7/site-packages/wx-3.0-gtk2
/home/saultdon/.qgis2//python
okanisis commented 8 years ago

It looks like the library name has some changes...

from matplotlib.backends.backend_qt4agg import NavigationToolbar2QT

...works!

I'd issue a pull request but not that familiar with git yet =)

semiautomaticgit commented 8 years ago

Thank you for reporting this issue. What version of Matplotlib do you have installed and what is your OS?

okanisis commented 8 years ago

Hi, I have python2-matplotlib 1.5.0

And running Arch Linux 64-bit (kernel 4.2.5).

I issued a pull request (my first, so any feedback is appreciated, especially if it's rejected).

semiautomaticgit commented 8 years ago

Thank you for your commit. I need to add some checks about the matplotlib version in order to avoid that this update breaks previous versions.

okanisis commented 8 years ago

Can I try another pull request using the try: importerror: method.

I made the change on my local system and it's working.

semiautomaticgit commented 8 years ago

yes, thank you