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
添加回答
舉報