在AWS Lambda中导入python-whois遇错:找不到'imp'模块
解决AWS Lambda(Python 3.12)中导入python-whois时的"No module named 'imp'"错误
问题原因
Python 3.12彻底移除了imp模块(该模块早在Python 3.4就被标记为废弃),而你当前安装的python-whois版本仍在依赖这个已移除的模块,导致Lambda运行时无法找到它,抛出导入错误。
解决方案
1. 安装适配Python 3.12的python-whois版本
python-whois从0.8.0版本开始,已经把依赖的imp模块替换成了Python 3+兼容的importlib,重新安装该版本及以上的包:
pip3 install python-whois>=0.8.0 -t .
2. 重新打包上传Lambda
删除本地目录里旧的依赖文件,用新安装的包重新打包,然后上传到Lambda即可。
3. 本地预验证(可选)
在本地Python 3.12环境里先测试导入,确认没有问题再上传:
import whois print("模块导入成功")
替代方案:换用兼容的Whois库
如果上述方法仍有问题,可以改用whoisdomain这个不依赖imp的库:
安装命令:
pip3 install whoisdomain -t .
代码里替换导入:
import json import whoisdomain as whois def lambda_handler(event, context): return { 'statusCode': 200, 'body': json.dumps(event) }
内容的提问来源于stack exchange,提问作者Andre
相关产品推荐
相关产品推荐

