I’m running into a very similar issue today trying to get the QGIS connector to install on MacOS Monterey 12.6. The plugin seems to install correctly, but the Speckle icon doesn’t appear. After restarting QGIS, I see the following error on launch.
My setup:
- Macbook Pro M1
- MacOS 12.6
- QGIS 3.28.3 (Firenze)
- Speckle QGIS connector 2.13.0
Here’s the error log I see when I open QGIS after install through the official plugin manager:
Couldn't load plugin 'speckle-qgis' due to an error when calling its classFactory() method
ImportError: cannot import name 'appengine' from 'urllib3.contrib' (/Applications/QGIS.app/Contents/MacOS/lib/python3.9/site-packages/urllib3/contrib/__init__.py)
Traceback (most recent call last):
File "/Applications/QGIS.app/Contents/MacOS/lib/python3.9/site-packages/requests_toolbelt/_compat.py", line 48, in
from requests.packages.urllib3.contrib import appengine as gaecontrib
ImportError: cannot import name 'appengine' from 'requests.packages.urllib3.contrib' (/Applications/QGIS.app/Contents/MacOS/lib/python3.9/site-packages/urllib3/contrib/__init__.py)
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/Applications/QGIS.app/Contents/MacOS/../Resources/python/qgis/utils.py", line 423, in _startPlugin
plugins[packageName] = package.classFactory(iface)
File "/Users/nate/Library/Application Support/QGIS/QGIS3/profiles/default/python/plugins/speckle-qgis/__init__.py", line 52, in classFactory
from speckle_qgis import SpeckleQGIS
File "/Applications/QGIS.app/Contents/MacOS/../Resources/python/qgis/utils.py", line 888, in _import
mod = _builtin_import(name, globals, locals, fromlist, level)
File "/Users/nate/Library/Application Support/QGIS/QGIS3/profiles/default/python/plugins/speckle-qgis/speckle_qgis.py", line 38, in
from specklepy.api.wrapper import StreamWrapper
File "/Applications/QGIS.app/Contents/MacOS/../Resources/python/qgis/utils.py", line 888, in _import
mod = _builtin_import(name, globals, locals, fromlist, level)
File "/Applications/QGIS.app/Contents/MacOS/lib/python3.9/site-packages/specklepy/api/wrapper.py", line 9, in
from specklepy.api.client import SpeckleClient
File "/Applications/QGIS.app/Contents/MacOS/../Resources/python/qgis/utils.py", line 888, in _import
mod = _builtin_import(name, globals, locals, fromlist, level)
File "/Applications/QGIS.app/Contents/MacOS/lib/python3.9/site-packages/specklepy/api/client.py", line 24, in
from gql.transport.requests import RequestsHTTPTransport
File "/Applications/QGIS.app/Contents/MacOS/../Resources/python/qgis/utils.py", line 888, in _import
mod = _builtin_import(name, globals, locals, fromlist, level)
File "/Applications/QGIS.app/Contents/MacOS/lib/python3.9/site-packages/gql/transport/requests.py", line 11, in
from requests_toolbelt.multipart.encoder import MultipartEncoder
File "/Applications/QGIS.app/Contents/MacOS/../Resources/python/qgis/utils.py", line 888, in _import
mod = _builtin_import(name, globals, locals, fromlist, level)
File "/Applications/QGIS.app/Contents/MacOS/lib/python3.9/site-packages/requests_toolbelt/__init__.py", line 12, in
from .adapters import SSLAdapter, SourceAddressAdapter
File "/Applications/QGIS.app/Contents/MacOS/../Resources/python/qgis/utils.py", line 888, in _import
mod = _builtin_import(name, globals, locals, fromlist, level)
File "/Applications/QGIS.app/Contents/MacOS/lib/python3.9/site-packages/requests_toolbelt/adapters/__init__.py", line 12, in
from .ssl import SSLAdapter
File "/Applications/QGIS.app/Contents/MacOS/../Resources/python/qgis/utils.py", line 888, in _import
mod = _builtin_import(name, globals, locals, fromlist, level)
File "/Applications/QGIS.app/Contents/MacOS/lib/python3.9/site-packages/requests_toolbelt/adapters/ssl.py", line 16, in
from .._compat import poolmanager
File "/Applications/QGIS.app/Contents/MacOS/../Resources/python/qgis/utils.py", line 888, in _import
mod = _builtin_import(name, globals, locals, fromlist, level)
File "/Applications/QGIS.app/Contents/MacOS/lib/python3.9/site-packages/requests_toolbelt/_compat.py", line 50, in
from urllib3.contrib import appengine as gaecontrib
ImportError: cannot import name 'appengine' from 'urllib3.contrib' (/Applications/QGIS.app/Contents/MacOS/lib/python3.9/site-packages/urllib3/contrib/__init__.py)
Python version: 3.9.5 (default, Sep 10 2021, 16:18:19) [Clang 12.0.5 (clang-1205.0.22.11)]
QGIS version: 3.28.2-Firenze Firenze, b47e00ba60
Python Path:
/Applications/QGIS.app/Contents/MacOS/../Resources/python
/Users/nate/Library/Application Support/QGIS/QGIS3/profiles/default/python
/Users/nate/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/site-packages/numba-0.50.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/scipy-1.5.1-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/opencv_contrib_python-4.3.0.36-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/matplotlib-3.3.0-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/numpy-1.20.1-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/pyproj-3.2.0-py3.9-macosx-10.13.0-x86_64.egg
/Applications/QGIS.app/Contents/MacOS/lib/python3.9/lib-dynload
/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/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/netCDF4-1.5.4-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/python39.zip
/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/Pillow-7.2.0-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/patsy-0.5.1-py3.9.egg
/Users/nate/Library/Application Support/QGIS/QGIS3/profiles/default/python
/Users/nate/Library/Application Support/QGIS/QGIS3/profiles/default/python/plugins/kmltools/libs
I’ve also tried uninstalling the plugin manually and installing it directly by cloning the main branch from Git. This raised another error related to pip being unable to install the dependencies automatically.
Any suggestions for me?