公认的解决方案包含一种现已弃用的方法。
这里的importlib文档为直接从python> = 3.5的文件路径中加载模块的更合适方法提供了一个很好的示例:
import importlib.utilimport sys# For illustrative purposes.import tokenizefile_path = tokenize.__file__ # returns "/path/to/tokenize.py"module_name = tokenize.__name__ # returns "tokenize"spec = importlib.util.spec_from_file_location(module_name, file_path)module = importlib.util.module_from_spec(spec)sys.modules[module_name] = modulespec.loader.exec_module(module)
因此,您可以从路径加载任何.py文件,并将模块名称设置为所需的名称。因此,只需将设置
module_name为您希望模块在导入时使用的任何自定义名称即可。
要加载软件包而不是单个文件,
file_path应为软件包根目录的路径
__init__.py



