Changed testing for the presence of optional modules,

because simply testing a file with a ".so" extension
does not work on multiarch Python installations.

Signed-off-by: Slávek Banko <slavek.banko@axis.cz>
(cherry picked from commit b34531364d)
r14.0.x
Slávek Banko 2 years ago
parent 52f8f8436d
commit 5916692cf4
No known key found for this signature in database
GPG Key ID: 608F5293A04BE668

@ -12,6 +12,23 @@ for m_path in sys.path:
for m_path in tqt_modules:
sys.path.insert(0, m_path)
# Checking if the module is available
def is_module_available(module_name):
if sys.version_info < (3, 0):
# python 2
import pkgutil
mod_loader = pkgutil.find_loader(module_name)
if sys.version_info <= (3, 3):
# python 3.0 to 3.3
import pkgutil
mod_loader = pkgutil.find_loader(module_name)
elif sys.version_info >= (3, 4):
# python 3.4 and above
import importlib.util
mod_loader = importlib.util.find_spec(module_name)
return mod_loader is not None
# Base modules
__all__ = [
'qt',
@ -24,11 +41,11 @@ __all__ = [
]
# Optional modules
if os.path.exists(os.path.join(m_pyqt_dir, 'qtaxcontainer.so')):
if is_module_available('qtaxcontainer'):
__all__.append('qtaxcontainer')
if os.path.exists(os.path.join(m_pyqt_dir, 'qtext.so')):
if is_module_available('qtext'):
__all__.append('qtext')
if os.path.exists(os.path.join(m_pyqt_dir, 'qtgl.so')):
if is_module_available('qtgl'):
__all__.append('qtgl')
# Import namespaces

Loading…
Cancel
Save