MacOS下用Python3.12运行gcloud报错:No module named 'imp'
问题原因
MacOS 环境下的 gcloud 工具未像 Linux/Windows 版本那样捆绑专属 Python 解释器,会优先调用系统 PATH 中设为默认的 Python。而 Python 3.12 已彻底移除了被弃用的 imp 模块,旧版 gcloud 代码仍依赖该模块,因此当系统默认 Python 为 3.12 时就会触发 ModuleNotFoundError。
解决方案
提供几种可解决该问题的方法:
临时指定兼容 Python 版本运行 gcloud
若系统已安装 Python 3.11 及以下版本,可直接指定该版本启动 gcloud,示例命令:/usr/bin/python3.11 /Users/<username>/google-cloud-sdk-1/bin/gcloud替换命令中的 Python 路径和 gcloud 安装路径为你系统的实际路径。
永久配置 gcloud 使用兼容 Python
通过设置CLOUDSDK_PYTHON环境变量,让 gcloud 始终调用兼容的 Python 版本:- 打开你的 shell 配置文件(如
~/.zshrc或~/.bash_profile) - 添加以下内容(替换为你系统中兼容 Python 的实际路径):
export CLOUDSDK_PYTHON=/usr/bin/python3.11 - 保存文件后执行以下命令使配置生效:
source ~/.zshrc
- 打开你的 shell 配置文件(如
更新 gcloud 至最新版本
新版 gcloud 已适配 Python 3.12,移除了对imp模块的依赖。若直接运行gcloud报错,可先用第一种临时方法指定兼容 Python 执行更新:gcloud components update
内容的提问来源于stack exchange,提问作者NathanLooney
相关产品推荐
相关产品推荐

