使用AWS SAM本地调用函数时遇ImportModuleError问题求助
解决
Runtime.ImportModuleError: cannot import name 'is_arabic' 问题 核心原因
这个错误是因为charset_normalizer版本不兼容——你当前环境里的版本已经把is_arabic函数从charset_normalizer.utils模块移除或转移了位置,但你的代码还在按旧路径导入。
修复步骤
锁定兼容版本:找到之前旧脚本正常运行时的
charset_normalizer版本,在requirements.txt里明确指定该版本。比如旧版本是2.0.12,就加一行:charset_normalizer==2.0.12然后重新安装依赖:
pip install -r requirements.txt,再重新构建SAM应用。调整导入路径:如果想升级到新版本,先查清楚当前版本中
is_arabic的新位置。比如新版本里这个函数可能在charset_normalizer.unicode模块,修改代码里的导入语句:# 替换原来的导入 # from charset_normalizer.utils import is_arabic from charset_normalizer.unicode import is_arabic清理SAM缓存:本地SAM可能缓存了旧依赖,执行以下命令清理后再重新调用:
rm -rf .build sam build sam local invoke MyFunction --event events/my_event.json排查间接依赖:如果你的代码没直接用
charset_normalizer,那可能是其他依赖包间接引入的。用pip show charset_normalizer查看依赖它的包,检查该包的版本是否需要同步调整,保证整体依赖兼容。
内容的提问来源于stack exchange,提问作者tikka
相关产品推荐
相关产品推荐

