1 回答
TA贡献1795条经验 获得超7个赞
在@AlexHall 的帮助下,我想出了以下解决方案:
import pathlib
import importlib.util
def load_module(filepath):
module_path = pathlib.Path(filepath)
abs_path = module_path.resolve()
module_name = module_path.stem
spec = importlib.util.spec_from_file_location(module_name, abs_path)
module = importlib.util.module_from_spec(spec)
spec.loader.exec_module(module)
return module
使用此功能,即使模块不在路径中,我也可以导入文件系统中存在的任何有效 python 模块。
这是一个示例用法:
parser = make_parser(prog="tokenizer")
args = parser.parse_args()
module = load_module(args.writer) # if nothing is passed, default action defined in the parser
writer = module.writer
module = load_module(args.reader)
reader = module.reader
# do what you want to do with them
添加回答
举报