PyCharm执行sam init创建AWS Serverless应用报错如何解决
故障现象
在PyCharm中新建AWS Serverless Application时流程执行失败,报错信息如下:
Could not execute `sam init`!: [Cloning from https://github.com/aws/aws-sam-cli-app-templates (process may take a moment), Error: Unstable state when updating repo. Check that you have permissions to create/delete files
当前运行环境参数:
- 操作系统:Windows 10 64位
- 依赖版本:Python 3.9、SAM CLI 1.53.0、Git 2.37
- IDE版本:PyCharm 2022.1.3 专业版
排查解决步骤
- 清理SAM CLI损坏的模板缓存
该报错核心诱因是之前拉取模板仓库时出现网络中断、文件被占用等问题,导致本地模板缓存处于损坏的不稳定状态。先彻底关闭PyCharm和所有SAM相关后台进程,打开资源管理器在地址栏输入%APPDATA%\AWS SAM回车进入SAM缓存目录,找到名为aws-sam-cli-app-templates的文件夹直接彻底删除,不要留残留文件。 - 校验缓存目录读写权限
右键点击上述AWS SAM缓存目录,打开「属性-安全」选项卡,确认当前登录Windows的账号对该目录拥有读取、写入、修改、删除的全量权限,如果权限缺失直接为当前账号分配对应权限,避免后续拉取模板时因权限不足写文件失败。 - 绕过IDE验证SAM基础功能
打开PowerShell或者命令提示符,直接执行sam init命令(不通过PyCharm触发),验证SAM本身能不能正常完成模板拉取和初始化流程。如果手动执行仍然报相同错误,先升级SAM CLI到最新稳定版——当前使用的1.53.0版本在Windows平台下处理Git缓存的逻辑存在已知缺陷,升级后重试手动初始化即可。 - 排查Git配置与网络问题
如果手动执行sam init时卡在仓库拉取步骤,先检查Git全局配置,依次执行以下两条命令临时清除全局代理配置:
清除后确认Git可以正常拉取公开HTTPS仓库代码,避免拉取过程中网络中断再次损坏缓存文件。git config --global --unset http.proxy git config --global --unset https.proxy - 校验IDE内的SAM路径配置
如果命令行下sam init执行正常,但PyCharm内仍然报错,打开PyCharm设置页找到AWS相关配置项,确认IDE内指定的SAM CLI可执行文件路径和命令行中调用的SAM路径完全一致,避免IDE调用了其他位置安装的旧版本SAM。配置确认后重启PyCharm,重新触发新建流程即可。
避坑提示:不要在SAM拉取模板的过程中强制关闭PyCharm或者中断命令执行,否则大概率会再次损坏缓存触发同类报错。
内容的提问来源于stack exchange,提问作者Utku Can
相关产品推荐
相关产品推荐

