Plugin installation error on qgis

Hello everyone, I hope you can support me by giving me a solution on the following error: while installing Speckle plugin version 2.10.1 on QGis program version 3.34.6 I encountered the following problem. I report the text below.

ModuleNotFoundError: No module named 'panda3d' 
Traceback (most recent call last):
  File "C:\PROGRA~1/QGIS33~1.6/apps/qgis-ltr/./python\qgis\utils.py", line 423, in _startPlugin
    plugins[packageName] = package.classFactory(iface)
                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users/Utente/AppData/Roaming/QGIS/QGIS3\profiles\default/python/plugins\speckle-qgis\__init__.py", line 52, in classFactory
    from speckle_qgis import SpeckleQGIS
  File "C:\PROGRA~1/QGIS33~1.6/apps/qgis-ltr/./python\qgis\utils.py", line 892, in _import
    mod = _builtin_import(name, globals, locals, fromlist, level)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\Utente\AppData\Roaming\QGIS\QGIS3\profiles\default\python\plugins\speckle-qgis\speckle_qgis.py", line 36, in 
    from plugin_utils.object_utils import callback, traverseObject
  File "C:\PROGRA~1/QGIS33~1.6/apps/qgis-ltr/./python\qgis\utils.py", line 892, in _import
    mod = _builtin_import(name, globals, locals, fromlist, level)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\Utente\AppData\Roaming\QGIS\QGIS3\profiles\default\python\plugins\speckle-qgis\plugin_utils\object_utils.py", line 5, in 
    from speckle.converter.layers.Layer import VectorLayer, RasterLayer, Layer
  File "C:\PROGRA~1/QGIS33~1.6/apps/qgis-ltr/./python\qgis\utils.py", line 892, in _import
    mod = _builtin_import(name, globals, locals, fromlist, level)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\Utente\AppData\Roaming\QGIS\QGIS3\profiles\default\python\plugins\speckle-qgis\speckle\converter\layers\__init__.py", line 19, in 
    from speckle.converter.geometry.point import pointToNative
  File "C:\PROGRA~1/QGIS33~1.6/apps/qgis-ltr/./python\qgis\utils.py", line 892, in _import
    mod = _builtin_import(name, globals, locals, fromlist, level)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\Utente\AppData\Roaming\QGIS\QGIS3\profiles\default\python\plugins\speckle-qgis\speckle\converter\geometry\__init__.py", line 12, in 
    from speckle.converter.geometry.polygon import *
  File "C:\PROGRA~1/QGIS33~1.6/apps/qgis-ltr/./python\qgis\utils.py", line 892, in _import
    mod = _builtin_import(name, globals, locals, fromlist, level)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\Utente\AppData\Roaming\QGIS\QGIS3\profiles\default\python\plugins\speckle-qgis\speckle\converter\geometry\polygon.py", line 25, in 
    from panda3d.core import Triangulator
  File "C:\PROGRA~1/QGIS33~1.6/apps/qgis-ltr/./python\qgis\utils.py", line 892, in _import
    mod = _builtin_import(name, globals, locals, fromlist, level)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
ModuleNotFoundError: No module named 'panda3d'

Versione Python: 3.12.3 (main, Apr 14 2024, 17:21:43) [MSC v.1938 64 bit (AMD64)] 
Versione di QGIS: 3.34.6-Prizren Prizren, 623828f5```

Hi @Chiara01A3SProgetti ! Thanks for reporting this. Was it a typo, did you mean Speckle connector 2.18.1?

Unfortunately, the seemingly “minor” version bump in QGIS had a jump from Python 3.9 to Python 3.12, and Speckle is using some version of the libraries from the former. I would suggest to install QGIS 3.34.3 in order to be able to use Speckle before we make a new release. Hope this helps!

2 Likes

Thanks for the prompt response, I solved it by following the advice, super!

1 Like

2 posts were split to a new topic: How can I download older versions of the QGIS connector

Oh wauw, thanks for highlighting this.
Python v3.9 → v3.12 is good, but that does indeed seem like a not so very minor change…

1 Like

To add to the mess, it seems like on macOS, they have not updated Python beyond 3.9:

This means installing the plugin through qGIS’s Plugin Manager fails with the following error:

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

ImportError: C extension: None not built. If you want to import pandas from the source directory, you may need to run 'python setup.py build_ext' to build the C extensions first. 
Traceback (most recent call last):
  File "/Users/daniel/.config/Speckle/connector_installations/QGIS/pandas/__init__.py", line 26, in 
    from pandas.compat import (
  File "/Applications/QGIS.app/Contents/MacOS/../Resources/python/qgis/utils.py", line 923, in _import
    mod = _builtin_import(name, globals, locals, fromlist, level)
  File "/Users/daniel/.config/Speckle/connector_installations/QGIS/pandas/compat/__init__.py", line 26, in 
    from pandas.compat.numpy import is_numpy_dev
  File "/Applications/QGIS.app/Contents/MacOS/../Resources/python/qgis/utils.py", line 923, in _import
    mod = _builtin_import(name, globals, locals, fromlist, level)
  File "/Users/daniel/.config/Speckle/connector_installations/QGIS/pandas/compat/numpy/__init__.py", line 21, in 
    raise ImportError(
ImportError: this version of pandas is incompatible with numpy your numpy version is 1.20.1.
Please upgrade numpy to >= 1.22.4 to use this pandas version

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/Applications/QGIS.app/Contents/MacOS/../Resources/python/qgis/utils.py", line 426, in _startPlugin
    plugins[packageName] = package.classFactory(iface)
  File "/Users/daniel/Library/Application Support/QGIS/QGIS3/profiles/default/python/plugins/speckle-qgis/__init__.py", line 32, in classFactory
    from speckle_qgis import SpeckleQGIS
  File "/Applications/QGIS.app/Contents/MacOS/../Resources/python/qgis/utils.py", line 923, in _import
    mod = _builtin_import(name, globals, locals, fromlist, level)
  File "/Users/daniel/Library/Application Support/QGIS/QGIS3/profiles/default/python/plugins/speckle-qgis/speckle_qgis.py", line 58, in 
    from plugin_utils.object_utils import callback, traverseObject
  File "/Applications/QGIS.app/Contents/MacOS/../Resources/python/qgis/utils.py", line 923, in _import
    mod = _builtin_import(name, globals, locals, fromlist, level)
  File "/Users/daniel/Library/Application Support/QGIS/QGIS3/profiles/default/python/plugins/speckle-qgis/plugin_utils/object_utils.py", line 7, in 
    from speckle.converter.layers.layer_conversions import (
  File "/Applications/QGIS.app/Contents/MacOS/../Resources/python/qgis/utils.py", line 923, in _import
    mod = _builtin_import(name, globals, locals, fromlist, level)
  File "/Users/daniel/Library/Application Support/QGIS/QGIS3/profiles/default/python/plugins/speckle-qgis/speckle/converter/layers/layer_conversions.py", line 67, in 
    from speckle.converter.geometry.point import (
  File "/Applications/QGIS.app/Contents/MacOS/../Resources/python/qgis/utils.py", line 923, in _import
    mod = _builtin_import(name, globals, locals, fromlist, level)
  File "/Users/daniel/Library/Application Support/QGIS/QGIS3/profiles/default/python/plugins/speckle-qgis/speckle/converter/geometry/point.py", line 12, in 
    from speckle.converter.geometry.utils import (
  File "/Applications/QGIS.app/Contents/MacOS/../Resources/python/qgis/utils.py", line 923, in _import
    mod = _builtin_import(name, globals, locals, fromlist, level)
  File "/Users/daniel/Library/Application Support/QGIS/QGIS3/profiles/default/python/plugins/speckle-qgis/speckle/converter/geometry/utils.py", line 19, in 
    import geopandas as gpd
  File "/Applications/QGIS.app/Contents/MacOS/../Resources/python/qgis/utils.py", line 923, in _import
    mod = _builtin_import(name, globals, locals, fromlist, level)
  File "/Users/daniel/.config/Speckle/connector_installations/QGIS/geopandas/__init__.py", line 1, in 
    from geopandas._config import options  # noqa
  File "/Applications/QGIS.app/Contents/MacOS/../Resources/python/qgis/utils.py", line 923, in _import
    mod = _builtin_import(name, globals, locals, fromlist, level)
  File "/Users/daniel/.config/Speckle/connector_installations/QGIS/geopandas/_config.py", line 109, in 
    default_value=_default_use_pygeos(),
  File "/Users/daniel/.config/Speckle/connector_installations/QGIS/geopandas/_config.py", line 95, in _default_use_pygeos
    import geopandas._compat as compat
  File "/Applications/QGIS.app/Contents/MacOS/../Resources/python/qgis/utils.py", line 923, in _import
    mod = _builtin_import(name, globals, locals, fromlist, level)
  File "/Users/daniel/.config/Speckle/connector_installations/QGIS/geopandas/_compat.py", line 8, in 
    import pandas as pd
  File "/Applications/QGIS.app/Contents/MacOS/../Resources/python/qgis/utils.py", line 923, in _import
    mod = _builtin_import(name, globals, locals, fromlist, level)
  File "/Users/daniel/.config/Speckle/connector_installations/QGIS/pandas/__init__.py", line 31, in 
    raise ImportError(
ImportError: C extension: None not built. If you want to import pandas from the source directory, you may need to run 'python setup.py build_ext' to build the C extensions first.


Python version: 3.9.5 (default, Sep 10 2021, 16:18:19) [Clang 12.0.5 (clang-1205.0.22.11)] 
QGIS version: 3.36.3-Maidenhead Maidenhead, 2df9655469b 

Python Path:
/Users/daniel/.config/Speckle/connector_installations/QGIS
/Users/daniel/.config/Speckle/connector_installations/QGIS
/Users/daniel/.config/Speckle/connector_installations/QGIS
/Users/daniel/.config/Speckle/connector_installations/QGIS
/Users/daniel/.config/Speckle/connector_installations/QGIS
/Users/daniel/.config/Speckle/connector_installations/QGIS
/Users/daniel/.config/Speckle/connector_installations/QGIS
/Applications/QGIS.app/Contents/MacOS/../Resources/python
/Users/daniel/Library/Application Support/QGIS/QGIS3/profiles/default/python
/Users/daniel/Library/Application Support/QGIS/QGIS3/profiles/default/python/plugins
/Applications/QGIS.app/Contents/MacOS/../Resources/python/plugins
/Applications/QGIS.app/Contents/MacOS/lib/python3.9/lib-dynload
/Applications/QGIS.app/Contents/MacOS/lib/python39.zip
/Applications/QGIS.app/Contents/MacOS/lib/python3.9/site-packages/Pillow-7.2.0-py3.9-macosx-10.13.0-x86_64.egg
/Applications/QGIS.app/Contents/MacOS/lib/python3.9/site-packages/geopandas-0.8.1-py3.9.egg
/Applications/QGIS.app/Contents/MacOS/lib/python3.9/site-packages/netCDF4-1.5.4-py3.9-macosx-10.13.0-x86_64.egg
/Applications/QGIS.app/Contents/MacOS/lib/python3.9/site-packages/statsmodels-0.11.1-py3.9-macosx-10.13.0-x86_64.egg
/Applications/QGIS.app/Contents/MacOS/lib/python3.9/site-packages/opencv_contrib_python-4.3.0.36-py3.9-macosx-10.13.0-x86_64.egg
/Applications/QGIS.app/Contents/MacOS/lib/python3.9/site-packages/pandas-1.3.3-py3.9-macosx-10.13.0-x86_64.egg
/Applications/QGIS.app/Contents/MacOS/lib/python3.9
/Applications/QGIS.app/Contents/MacOS/lib/python3.9/site-packages/numpy-1.20.1-py3.9-macosx-10.13.0-x86_64.egg
/Applications/QGIS.app/Contents/MacOS/lib/python3.9/site-packages/Rtree-0.9.7-py3.9-macosx-10.13.0-x86_64.egg
/Applications/QGIS.app/Contents/MacOS/lib/python3.9/site-packages/GDAL-3.3.2-py3.9-macosx-10.13.0-x86_64.egg
/Applications/QGIS.app/Contents/MacOS/lib/python3.9/site-packages
/Applications/QGIS.app/Contents/MacOS/lib/python3.9/site-packages/pyproj-3.2.0-py3.9-macosx-10.13.0-x86_64.egg
/Applications/QGIS.app/Contents/MacOS/lib/python3.9/site-packages/patsy-0.5.1-py3.9.egg
/Applications/QGIS.app/Contents/MacOS/lib/python3.9/site-packages/Fiona-1.8.13.post1-py3.9-macosx-10.13.0-x86_64.egg
/Applications/QGIS.app/Contents/MacOS/lib/python3.9/site-packages/scipy-1.5.1-py3.9-macosx-10.13.0-x86_64.egg
/Applications/QGIS.app/Contents/MacOS/lib/python3.9/site-packages/matplotlib-3.3.0-py3.9-macosx-10.13.0-x86_64.egg
/Applications/QGIS.app/Contents/MacOS/lib/python3.9/site-packages/rasterio-1.1.5-py3.9-macosx-10.13.0-x86_64.egg
/Applications/QGIS.app/Contents/MacOS/lib/python3.9/site-packages/cftime-1.2.1-py3.9-macosx-10.13.0-x86_64.egg
/Applications/QGIS.app/Contents/MacOS/lib/python3.9/site-packages/numba-0.50.1-py3.9-macosx-10.13.0-x86_64.egg
/Users/daniel/Library/Application Support/QGIS/QGIS3/profiles/default/python
2 Likes

Indeed, QGIS cannot be trusted with semantic versioning :smile: We are thinking of a new strategy, and possibly it will be to limit support of the new Speckle releases to specific current QGIS LTR versions (separately for Windows and Mac), not older not newer. Ambiguity even between minor versions is clearly setting potentially false expectations.

1 Like