从
importlib测试代码中找到了解决方案。
使用importlib.machinery.SourceFileLoader:
>>> import importlib.machinery>>> loader = importlib.machinery.SourceFileLoader('a_b', '/tmp/a-b.txt')>>> mod = loader.load_module()>>> mod<module 'a_b' from '/tmp/a-b.txt'>注意 :仅适用于 Python 3.3+ 。
*Loader.load_module
从Python
3.4开始不推荐使用 *UPDATe
。
Loader.exec_module改为使用:
>>> import types>>> import importlib.machinery>>> loader = importlib.machinery.SourceFileLoader('a_b', '/tmp/a-b.txt')>>> mod = types.ModuleType(loader.name)>>> loader.exec_module(mod)>>> mod<module 'a_b'>>>> import importlib.machinery>>> import importlib.util>>> loader = importlib.machinery.SourceFileLoader('a_b', '/tmp/a-b.txt')>>> spec = importlib.util.spec_from_loader(loader.name, loader)>>> mod = importlib.util.module_from_spec(spec)>>> loader.exec_module(mod)>>> mod<module 'a_b' from '/tmp/a-b.txt'>


