本地运行Python脚本时awsglue模块导入异常问题求助
解决本地导入internal_lib时awsglue模块报错的问题
方案一:修复internal_lib中的异常捕获逻辑
确保from awsglue.utils import getResolvedOptions完全被try-except块包裹,同时为本地环境提供替代实现,避免后续代码调用该函数时出错:
修改internal_lib.py中的相关代码为:
try: from awsglue.utils import getResolvedOptions except (ImportError, ModuleNotFoundError): # 本地环境下的模拟实现,可根据需求调整逻辑 def getResolvedOptions(args, options): # 示例:返回传入参数中匹配的键值对,或自定义默认值 return {opt: args.get(opt, "") for opt in options}
如果internal_lib中有依赖getResolvedOptions的代码,这样修改后本地运行时会自动使用模拟函数,不会触发报错。
方案二:本地创建模拟的awsglue模块
官方awsglue模块仅在AWS Glue运行环境中可用,本地无法直接安装,可手动创建模拟模块:
- 在项目根目录新建
awsglue文件夹 - 在该文件夹内创建
__init__.py(空文件即可) - 再创建
utils.py文件,写入模拟函数:
def getResolvedOptions(args, options): # 可根据本地调试需求自定义实现,比如从环境变量取参数 import os result = {} for opt in options: result[opt] = os.getenv(opt) or args.get(opt, "") return result
完成后,本地导入internal_lib时会优先加载这个本地模拟的awsglue模块,不会触发ModuleNotFoundError。
内容的提问来源于stack exchange,提问作者dapperAF
相关产品推荐
相关产品推荐

