mirror of
https://github.com/LBRYFoundation/LBRY-Vault.git
synced 2025-09-01 09:45:18 +00:00
plugins: on some systems plugins with relative imports failed to load
this caused electrum to fail to start potentially only older python 3.6.x are affected fixes #5421
This commit is contained in:
parent
29ce50a305
commit
811169da4b
1 changed files with 4 additions and 0 deletions
|
@ -27,6 +27,7 @@ import pkgutil
|
||||||
import importlib.util
|
import importlib.util
|
||||||
import time
|
import time
|
||||||
import threading
|
import threading
|
||||||
|
import sys
|
||||||
from typing import NamedTuple, Any, Union, TYPE_CHECKING, Optional
|
from typing import NamedTuple, Any, Union, TYPE_CHECKING, Optional
|
||||||
|
|
||||||
from .i18n import _
|
from .i18n import _
|
||||||
|
@ -73,6 +74,9 @@ class Plugins(DaemonThread):
|
||||||
raise Exception(f"Error pre-loading {full_name}: no spec")
|
raise Exception(f"Error pre-loading {full_name}: no spec")
|
||||||
try:
|
try:
|
||||||
module = importlib.util.module_from_spec(spec)
|
module = importlib.util.module_from_spec(spec)
|
||||||
|
# sys.modules needs to be modified for relative imports to work
|
||||||
|
# see https://stackoverflow.com/a/50395128
|
||||||
|
sys.modules[spec.name] = module
|
||||||
spec.loader.exec_module(module)
|
spec.loader.exec_module(module)
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
raise Exception(f"Error pre-loading {full_name}: {repr(e)}") from e
|
raise Exception(f"Error pre-loading {full_name}: {repr(e)}") from e
|
||||||
|
|
Loading…
Add table
Reference in a new issue