如何编写通过绝对路径导入Python脚本的函数
绝对路径导入Python脚本的实现方案
一、手动实现函数
借助Python标准库的importlib和os模块,可实现完整的绝对路径导入函数,代码如下:
import importlib.util import os def import_script_by_absolute_path(path): # 校验文件是否存在 if not os.path.exists(path): raise FileNotFoundError(f"指定脚本不存在:{path}") # 生成模块规格对象 spec = importlib.util.spec_from_file_location("custom_import_module", path) # 创建空模块对象 module = importlib.util.module_from_spec(spec) # 执行脚本内容并加载到模块中 spec.loader.exec_module(module) return module # 测试用例 my_path = "/my/path/to/python/script.py" my_script = import_script_by_absolute_path(my_path) print(my_script.my_sum(2, 2)) # 输出结果:4
目标脚本/my/path/to/python/script.py的内容:
def my_sum(a, b): return a + b
二、标准库原生简便实现
Python标准库importlib.util提供了核心导入方法,无需封装也可直接完成导入:
import importlib.util path = "/my/path/to/python/script.py" # 生成模块规格 spec = importlib.util.spec_from_file_location("temp_module", path) # 创建模块并加载内容 my_script = importlib.util.module_from_spec(spec) spec.loader.exec_module(my_script) # 调用脚本内函数 print(my_script.my_sum(2, 2))
内容的提问来源于stack exchange,提问作者adroit.levees.0r
相关产品推荐
相关产品推荐

