Gracefully handle missing dependencies.
[nmigen.git] / nmigen / __init__.py
index 78a8dec0c3b15ad49cef3dc925a2ef0c128804d6..93a3a9a9fa358ccadd2dcbdab66d29f5c2afb35f 100644 (file)
@@ -1,8 +1,14 @@
 try:
-    from importlib import metadata as importlib_metadata # py3.8+ stdlib
+    try:
+        from importlib import metadata as importlib_metadata # py3.8+ stdlib
+    except ImportError:
+        import importlib_metadata # py3.7- shim
+    __version__ = importlib_metadata.version(__package__)
 except ImportError:
-    import importlib_metadata # py3.7- shim
-__version__ = importlib_metadata.version(__package__)
+    # No importlib_metadata. This shouldn't normally happen, but some people prefer not installing
+    # packages via pip at all, instead using PYTHONPATH directly or copying the package files into
+    # `lib/pythonX.Y/site-packages`. Although not a recommended way, we still try to support it.
+    __version__ = "unknown"
 
 
 from .hdl import *