eatyourbaby / qgis-arm64-apple

QGIS on Apple Silicon
18 stars 0 forks source link

cannot import name 'QtWebKitWidgets' from 'PyQt5' #2

Closed botanize closed 1 year ago

botanize commented 1 year ago
Couldn't load plugin 'qgis_resource_sharing' due to an error when calling its classFactory() method 

ImportError: cannot import name 'QtWebKitWidgets' from 'PyQt5' (/Applications/QGIS.app/Contents/MacOS/../Resources/python/PyQt5/__init__.py) 
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/reidjp/Library/Application Support/QGIS/QGIS3/profiles/default/python/plugins/qgis_resource_sharing/__init__.py", line 54, in classFactory
    from qgis_resource_sharing.plugin import ResourceSharingPlugin
  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/reidjp/Library/Application Support/QGIS/QGIS3/profiles/default/python/plugins/qgis_resource_sharing/plugin.py", line 33, in 
    from qgis_resource_sharing.gui.resource_sharing_dialog import ResourceSharingDialog
  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/reidjp/Library/Application Support/QGIS/QGIS3/profiles/default/python/plugins/qgis_resource_sharing/gui/resource_sharing_dialog.py", line 71, in 
    FORM_CLASS, _ = uic.loadUiType(str(ui_path("resource_sharing_dialog_base.ui")))
                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Applications/QGIS.app/Contents/MacOS/../Resources/python/qgis/PyQt/uic/__init__.py", line 36, in __loadUiType
    return __PyQtLoadUiType(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Applications/QGIS.app/Contents/MacOS/../Resources/python/PyQt5/uic/__init__.py", line 204, in loadUiType
    exec(code_string.getvalue(), ui_globals)
  File "", line 290, in 
ImportError: cannot import name 'QtWebKitWidgets' from 'PyQt5' (/Applications/QGIS.app/Contents/MacOS/../Resources/python/PyQt5/__init__.py)

Python version: 3.11.0 (main, Nov 13 2022, 14:13:08) [Clang 14.0.0 (clang-1400.0.29.202)] QGIS version: 3.28.1-Firenze Firenze, exported

eatyourbaby commented 1 year ago

I tried to use relative install path for portability, but the sheer amount of libraries and executables has made it really difficult, and this (as well as #3) happens when I miss something. I've also found out some libraries hardcode search path during compile time. So, for the next point release on Jan 27 I will use absolute path instead. The disadvantage is it must be installed in /Applications for it to run.

I'll close this issue for now.