Python AWS Lambda单元测试:子目录无法导入lambda_handler问题
解决AWS Lambda函数单元测试的导入问题
方案一:修正Python路径添加逻辑
在test.py的最开头(所有导入语句之前)添加以下代码,确保上级目录被优先加入Python搜索路径:
import os import sys # 将lambda_function.py所在的目录添加到Python路径的最前面 sys.path.insert(0, os.path.abspath(os.path.join(os.path.dirname(__file__), ".."))) # 现在可以正常导入 from lambda_function import lambda_handler
使用sys.path.insert(0, ...)而非append,能避免其他目录下的同名模块干扰导入。
方案二:从上级目录运行测试(无需修改代码)
直接在lambda目录下执行测试命令,此时lambda目录会被自动加入Python路径:
cd lambda python -m unittest tests.test
这种方式不需要修改test.py的路径配置,适合保持代码整洁。
排查要点
- 确认
lambda_function.py的文件名、lambda_handler函数名拼写完全正确 - 检查
mockdata.json等文件的路径引用是否也需要同步调整(如果测试中用到)
内容的提问来源于stack exchange,提问作者sai variam
相关产品推荐
相关产品推荐

