Mac M1环境中Colima+PyCharm运行AWS SAM报错:找不到pydevd.py
在Mac M1上通过PyCharm+Colima启动AWS SAM失败的问题与解决方案
问题描述
在Mac M1设备上,通过PyCharm在Docker(Colima)容器中启动AWS SAM时失败,核心报错为找不到pydevd.py文件,完整报错信息如下:
START RequestId: 35db17a5-d684-4ffa-b3ad-d50e253561b7 Version: $LATEST /var/lang/bin/python3.9: can't open file '/tmp/lambci_debug_files/pydevd.py': [Errno 2] No such file or directory 22 Dec 2022 21:06:55,372 [ERROR] (rapid) Init failed error=Runtime exited with error: exit status 2 InvokeID= /var/lang/bin/python3.9: can't open file '/tmp/lambci_debug_files/pydevd.py': [Errno 2] No such file or directory END RequestId: 45c424e4-0012-40a3-a049-928c3c838518 REPORT RequestId: 45c424e4-0012-40a3-a049-928c3c838518 Init Duration: 2.56 ms Duration: 358.87 ms Billed Duration: 359 ms Memory Size: 128 MB Max Memory Used: 128 MB
当前Colima运行状态:
INFO[0000] colima is running using QEMU INFO[0000] arch: x86_64 INFO[0000] runtime: docker INFO[0000] mountType: 9p INFO[0000] socket: unix:///Users/chritu07/.colima/default/docker.sock
已尝试挂载/Applications目录的命令,但未解决问题:
colima start -c 4 -m 12 -a x86_64 --mount-type 9p --mount /Applications:w
解决方案
1. 校验PyCharm调试路径映射
PyCharm调试SAM时会自动映射本地调试工具到容器/tmp/lambci_debug_files/目录,需手动确认映射有效性:
- 打开PyCharm的Run/Debug Configurations,找到对应SAM配置
- 切换到Docker标签页,检查Volume bindings是否包含本地PyCharm调试工具目录到容器目标路径的映射
- 确保本地路径为绝对路径,且Colima对该目录有读写权限
2. 更换Colima挂载类型为virtiofs
9p挂载在x86_64模拟环境下存在兼容性缺陷,改用virtiofs可提升挂载稳定性:
- 停止当前Colima实例:
colima stop
- 用virtiofs重新启动:
colima start -c 4 -m 12 -a x86_64 --mount-type virtiofs
- 重启PyCharm后重新尝试启动SAM调试
3. 手动复制pydevd.py到容器
若路径映射始终失效,可手动复制文件到容器:
- 找到本地PyCharm的pydevd路径,通常为
/Applications/PyCharm.app/Contents/plugins/python/helpers/pydev/ - 在容器短暂运行期间,执行复制命令(替换
<容器ID>为实际容器ID):
docker cp /Applications/PyCharm.app/Contents/plugins/python/helpers/pydev/pydevd.py <容器ID>:/tmp/lambci_debug_files/
- 重新触发SAM函数调用
4. 升级依赖工具到最新版
旧版本的PyCharm(专业版)和AWS SAM CLI可能存在M1架构兼容性bug:
- 升级PyCharm到最新稳定版
- 升级AWS SAM CLI:
brew upgrade aws-sam-cli
内容的提问来源于stack exchange,提问作者Chris
相关产品推荐
相关产品推荐

