You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Google Cloud App Engine部署失败:python setup.py egg_info执行出错

解决GAE Flex部署中pip升级及google-cloud安装失败问题

先帮你拆解下核心问题:

  • 虽然你在requirements.txt里指定了pip==10.0.1,但Cloud Build还是用旧版本的pip(9.0.3)处理google-cloud包的安装,导致setup.py egg_info报错。这是因为在同一个pip install -r requirements.txt命令中,升级pip的操作不会立即生效——当前运行的pip进程还是旧版本,没法在安装依赖的过程中替换自己。
  • 另外,你用的google-cloud==0.33.0是很老的元包,官方早已废弃,它的打包本身就存在问题(找不到setup-README.rst文件),这也是报错的直接诱因。

下面给你两个可行的解决方案:

方案一:用自定义Dockerfile控制构建流程(推荐)

通过自定义Dockerfile,我们可以先强制升级pip,再安装所有依赖,确保整个过程用的都是新版本pip。

  1. 在项目根目录创建Dockerfile,内容如下:
# 基于GAE官方Python镜像
FROM gcr.io/google-appengine/python

# 创建Python3.6虚拟环境
RUN virtualenv /env -p python3.6

# 设置虚拟环境的环境变量,确保后续命令都用虚拟环境里的Python/Pip
ENV VIRTUAL_ENV /env
ENV PATH /env/bin:$PATH

# 先升级pip到指定版本
RUN pip install --upgrade pip==10.0.1

# 安装项目依赖
ADD requirements.txt /app/requirements.txt
RUN pip install -r /app/requirements.txt

# 复制项目代码到容器
ADD . /app

# 设置启动命令,和你原来的entrypoint保持一致
ENTRYPOINT ["gunicorn", "-b", ":$PORT", "main:app"]
  1. 修改app.yaml,指定使用自定义运行时:
runtime: custom
env: flex
manual_scaling:
  instances: 1
resources:
  cpu: 1
  memory_gb: 0.5
  disk_size_gb: 10

这样构建时会先执行pip install --upgrade pip,确保后续安装依赖用的是新版本pip,彻底解决版本不兼容的问题。

方案二:替换废弃的google-cloud元包

旧版google-cloud元包已经被官方拆分,现在推荐使用对应服务的独立包(比如google-cloud-storage、google-cloud-pubsub等)。这些新包打包更规范,对pip版本的兼容性也更好。

  1. 打开requirements.txt,删除google-cloud这一行,替换成你实际需要的服务包。比如如果用到云存储,就写:
pip==10.0.1
Flask==0.12.2
gunicorn==19.7.1
oauth2client==4.1.2
google-cloud-storage==2.15.0  # 按需选择合适版本
  1. 本地测试时,先手动升级pip再安装依赖:
pip install --upgrade pip==10.0.1
pip install -r requirements.txt

确认本地能正常运行后,再重新部署到GAE。

本地验证方法

部署前可以先本地测试构建流程,提前排查问题:

docker build -t gae-test .
docker run -p 8080:8080 gae-test

如果本地能正常启动服务,说明构建流程没问题,再推送到GAE部署即可。

内容的提问来源于stack exchange,提问作者Arhire Ionut

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 09:29:52