summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--module-init.py23
1 files changed, 20 insertions, 3 deletions
diff --git a/module-init.py b/module-init.py
index bc5f31b..00bb4e8 100644
--- a/module-init.py
+++ b/module-init.py
@@ -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