如何在MacBook M2 arm64上构建适配AWS x64部署的Docker镜像?
在M2架构MacBook Pro上执行
cdk deploy时numpy导入错误的解决方法 问题现象
- 使用M2架构的MacBook Pro执行
cdk deploy,触发numpy相关的C扩展导入错误:
Original error was: No module named 'numpy.core._multiarray_umath.
- 查看Docker Desktop,发现构建使用的是
ARCHITECTURE arm64,而AWS运行环境为x64(amd64)架构 - 更换多个numpy版本后问题依旧,同事使用x64笔记本部署相同代码可正常运行
原因分析
M2属于arm64架构,Docker默认会以同架构的镜像进行构建,但AWS多数计算服务(如Lambda)采用amd64架构。numpy的C扩展是架构相关的,arm64环境下构建的依赖包无法在amd64环境中正常加载,导致导入失败。
解决步骤
- 打开zsh配置文件(通常为
~/.zshrc) - 在文件中添加以下环境变量,强制Docker使用amd64平台构建:
export DOCKER_DEFAULT_PLATFORM="linux/amd64"
- 执行命令使配置立即生效:
source ~/.zshrc
- 重新执行
cdk deploy,问题即可解决
内容的提问来源于stack exchange,提问作者doublea
相关产品推荐
相关产品推荐

