electrum

Electrum Bitcoin wallet
git clone https://git.parazyd.org/electrum
Log | Files | Refs | Submodules

commit 811169da4b9a31388cc1d9e8e2cac738f14eded9
parent 29ce50a30566d1c69c99896c355df9084a3b3cbd
Author: SomberNight <somber.night@protonmail.com>
Date:   Wed, 12 Jun 2019 20:07:36 +0200

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

Diffstat:
Melectrum/plugin.py | 4++++
1 file changed, 4 insertions(+), 0 deletions(-)

diff --git a/electrum/plugin.py b/electrum/plugin.py @@ -27,6 +27,7 @@ import pkgutil import importlib.util import time import threading +import sys from typing import NamedTuple, Any, Union, TYPE_CHECKING, Optional from .i18n import _ @@ -73,6 +74,9 @@ class Plugins(DaemonThread): raise Exception(f"Error pre-loading {full_name}: no spec") try: 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) except Exception as e: raise Exception(f"Error pre-loading {full_name}: {repr(e)}") from e