semiautomaticgit / SemiAutomaticClassificationPlugin

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

ImportError: No module named rrule in Archlinux #18

Closed aldeano closed 7 years ago

aldeano commented 7 years ago

I got this error when installing the plugin:

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

ImportError: No module named rrule 
Traceback (most recent call last):
  File "/usr/share/qgis/python/qgis/utils.py", line 333, in startPlugin
    plugins[packageName] = package.classFactory(iface)
  File "/home/user/.qgis2/python/plugins/SemiAutomaticClassificationPlugin/__init__.py", line 65, in classFactory
    from semiautomaticclassificationplugin import SemiAutomaticClassificationPlugin
  File "/usr/share/qgis/python/qgis/utils.py", line 607, in _import
    mod = _builtin_import(name, globals, locals, fromlist, level)
  File "/home/user/.qgis2/python/plugins/SemiAutomaticClassificationPlugin/semiautomaticclassificationplugin.py", line 72, in 

    from ui.semiautomaticclassificationplugindialog import SemiAutomaticClassificationPluginDialog
  File "/usr/share/qgis/python/qgis/utils.py", line 607, in _import
    mod = _builtin_import(name, globals, locals, fromlist, level)
  File "/home/user/.qgis2/python/plugins/SemiAutomaticClassificationPlugin/ui/semiautomaticclassificationplugindialog.py", line 38, in 
    from ui_semiautomaticclassificationplugin_scatter_plot import Ui_ScatterPlot
  File "/usr/share/qgis/python/qgis/utils.py", line 607, in _import
    mod = _builtin_import(name, globals, locals, fromlist, level)
  File "/home/user/.qgis2/python/plugins/SemiAutomaticClassificationPlugin/ui/ui_semiautomaticclassificationplugin_scatter_plot.py", line 467, in 
    from scatterwidget2 import ScatterWidget2
  File "/usr/share/qgis/python/qgis/utils.py", line 607, in _import
    mod = _builtin_import(name, globals, locals, fromlist, level)
  File "/home/user/.qgis2/python/plugins/SemiAutomaticClassificationPlugin/ui/scatterwidget2.py", line 43, in 
    from matplotlib.backends.backend_qt4agg import FigureCanvasQTAgg as FigCanvas
  File "/usr/share/qgis/python/qgis/utils.py", line 607, in _import
    mod = _builtin_import(name, globals, locals, fromlist, level)
  File "/usr/lib/python2.7/site-packages/matplotlib/backends/backend_qt4agg.py", line 15, in 
    from matplotlib.figure import Figure
  File "/usr/share/qgis/python/qgis/utils.py", line 607, in _import
    mod = _builtin_import(name, globals, locals, fromlist, level)
  File "/usr/lib/python2.7/site-packages/matplotlib/figure.py", line 40, in 
    from matplotlib.axes import Axes, SubplotBase, subplot_class_factory
  File "/usr/share/qgis/python/qgis/utils.py", line 607, in _import
    mod = _builtin_import(name, globals, locals, fromlist, level)
  File "/usr/lib/python2.7/site-packages/matplotlib/axes/__init__.py", line 4, in 
    from ._subplots import *
  File "/usr/share/qgis/python/qgis/utils.py", line 607, in _import
    mod = _builtin_import(name, globals, locals, fromlist, level)
  File "/usr/lib/python2.7/site-packages/matplotlib/axes/_subplots.py", line 10, in 
    from matplotlib.axes._axes import Axes
  File "/usr/share/qgis/python/qgis/utils.py", line 607, in _import
    mod = _builtin_import(name, globals, locals, fromlist, level)
  File "/usr/lib/python2.7/site-packages/matplotlib/axes/_axes.py", line 23, in 
    import matplotlib.dates as _  #   File "/usr/share/qgis/python/qgis/utils.py", line 607, in _import
    mod = _builtin_import(name, globals, locals, fromlist, level)
  File "/usr/lib/python2.7/site-packages/matplotlib/dates.py", line 126, in 
    from dateutil.rrule import (rrule, MO, TU, WE, TH, FR, SA, SU, YEARLY,
  File "/usr/share/qgis/python/qgis/utils.py", line 607, in _import
    mod = _builtin_import(name, globals, locals, fromlist, level)
ImportError: No module named rrule

Python version: 2.7.12 (default, Jun 28 2016, 08:31:05) [GCC 6.1.1 20160602] 
QGIS version: 2.16.3 Nødebo, exported 

Python Path:
/usr/share/qgis/python/plugins/processing
/usr/share/qgis/python
/home/user/.qgis2/python
/home/user/.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
/usr/lib/python2.7/site-packages
/usr/lib/python2.7/site-packages/gtk-2.0
/home/user/.qgis2//python

Rrule is installed with the dateutil package, if i write from dateutil.rrule import rrule in the python console it is imported with no issues. I have installed python2-dateutil 2.5.3-1 and python2-matplotlib 1.5.2-2.

semiautomaticgit commented 7 years ago

Hello and thank you for reporting this. Possibly it is related to this http://semiautomaticclassificationmanual-v5.readthedocs.io/en/latest/faq.html#error-installing-the-plugin-possible-missing-dependencies-why However, it seems a dependency issue or a QGIS issue, as you can read in the last few lines of the message

File "/usr/share/qgis/python/qgis/utils.py", line 607, in _import mod = _builtin_import(name, globals, locals, fromlist, level) ImportError: No module named rrule

/usr/share/qgis/python/qgis/utils.py fails to import rrule. You can try to install QGIS again. Also check that Python is not installed through Anaconda.