答案 0 :(得分:0)
您可以为此使用importlib
直接取自文档:
文件夹结构:
├── bar
│ ├── __init__.py
│ └── module_bar.py
└── foo
├── __init__.py
└── module_foo.py
$ cat bar/__init__.py
from . import module_bar
$ cat bar/module_bar.py
def run():
print("module_bar imported")
$ cat foo/module_foo.py
import importlib.util
import sys
def load_module():
fn = "custom"
fp = "/home/../bar/__init__.py"
spec = importlib.util.spec_from_file_location(fn,fp)
module = importlib.util.module_from_spec(spec)
sys.modules[spec.name] = module
spec.loader.exec_module(module)
return module
print(load_module().module_bar.run())
$ python3.8 foo/module_foo.py
module_bar imported