AWS CDK项目pip3安装依赖冲突问题求助
AWS CDK v2依赖冲突解决步骤
问题根源
你遇到的冲突是因为环境中混入了AWS CDK v1版本的依赖包(比如aws-cdk-assets 1.204.0),CDK v1依赖constructs <4.0.0,但你使用的CDK v2(2.117.0)要求constructs >=10.0.0,<11.0.0,两者版本完全不兼容。
解决方案
1. 彻底清理并重建虚拟环境
虚拟环境隔离是避免依赖污染的最佳方式,先清理旧环境:
- Linux/macOS:
rm -rf .venv python3 -m venv .venv source .venv/bin/activate - Windows(PowerShell):
Remove-Item -Recurse -Force .venv python -m venv .venv .venv\Scripts\Activate.ps1
2. 确保requirements.txt仅包含CDK v2依赖
你的现有配置是正确的,保持如下内容:
aws-cdk-lib==2.117.0 constructs>=10.0.0,<11.0.0
注意:不要添加任何CDK v1的包(比如aws-cdk-core、aws-cdk-assets单独指定v1版本),CDK v2的aws-cdk-lib已经包含了所有必要的核心依赖。
3. 强制重新安装依赖(跳过缓存)
执行以下命令,强制重新安装并忽略本地缓存,避免旧版本包干扰:
pip3 install --upgrade --force-reinstall -r requirements.txt --no-cache-dir
4. 卸载全局残留的CDK v1包(可选)
如果之前曾全局安装过CDK v1相关包,可能会影响虚拟环境,执行以下命令清理:
pip3 uninstall -y aws-cdk-core aws-cdk-aws-lambda aws-cdk-aws-iam aws-cdk-assets
5. 验证安装结果
安装完成后,运行以下命令确认依赖版本兼容:
pip3 list | grep -E "aws-cdk-lib|constructs|aws-cdk-assets"
正常输出应该是:
aws-cdk-lib2.117.0constructs10.x.x(在10.0.0-11.0.0范围内)aws-cdk-assets2.x.x(与CDK v2版本匹配)
完成以上步骤后,就能正常使用Lambda、IAM、Lambda Layer等CDK模块了。
内容的提问来源于stack exchange,提问作者Riddhi Gala
相关产品推荐
相关产品推荐

