It becomes more and more difficult to determine (let alone specify) which pieces of PyQt5 are necessary for a plugin's success. Especially when more and more distros have chosen to break Qt's python bindings down into component pieces much like the Qt modules themselves.
When we bundle python with our Sigil Windows and MacOS packages, the python binding pieces we include for use with plugins are:
Code:
PYQT_MODULES = ['%s.pyd' % x for x in (
'Qt', 'QtCore', 'QtGui', 'QtNetwork', 'QtPrintSupport',
'QtWebEngine', 'QtWebEngineCore', 'QtWebEngineWidgets',
'QtWebChannel', 'QtSvg', 'QtWidgets'
)]
So users of Linux should probably make sure the corresponding pyqt packages for their distros are present if they make use of Sigil plugins. I'll try to make sure these are mentioned in Sigil's documentation somewhere. The Qt5Svg module is definitely a runtime dependency of Sigil on Linux, but package maintainers consider Sigil plugins to be optional. So they don't include any of the PyQt bindings that come with Sigil Win/Mac by default as dependencies. It sucks. But it is what it is.
When we release an official Sigil based on Qt6 (users can already build this for themselves), the PySide6 packages needed to be fully ready for all Sigil plugins will be:
Code:
PYSIDE6_MODULES = [
'QtCore', 'QtGui', 'QtNetwork', 'QtOpenGlWidgets','QtPrintSupport',
'QtUiTools','QtWebEngine', 'QtWebEngineCore', 'QtWebEngineWidgets',
'QtWebChannel', 'QtSvg', 'QtWidgets', 'Shiboken'
]