首页 > 解决方案 > App Engine 继续提供以前的 Python 版本

问题描述

最近(一年内)似乎当我将更新部署到App Engine应用程序时,它会继续提供以前的 Python 代码。

我可以去控制台和下面:

版本 -> 调试 -> 源

看到最新版本已部署。当它出错时,日志中给出的链接指向新的源,但根据明确的结果,它实际上是旧的源。这已经在多个应用程序上发生,唯一的解决方案是等待一天再试一次。

我用来从本地 Windows 开发环境部署的命令是:

gcloud app deploy --project xxxxxxxxxx --version 1

我试过修改版本号,但结果是一样的。

我会错过什么?

进一步尝试:我将部署命令更改为:

gcloud app deploy --project xxxxxxxx --promote --stop-previous-version

我删除了版本开关,以便 App Engine 可以创建自己的版本编号。结果是一样的:以前的版本继续服务。

只是为了验证,我添加了一个日志记录行:

logging.info('Last edit: 5/28/2018 11:08')
client_id = os.environ['CLIENT_ID']
logging.info('CLIENT_ID = ' + str(client_id))

添加了第一行,其他两行是旧的。在日志跟踪中,它显示第二个日志的输出,而不是第一个。真正奇怪的是日志中的行号表示中间行,所以它显示的是新源,但执行的是旧的。

标签: pythongoogle-app-enginedeployment

解决方案


我正在使用适用于 Python 的原始 App Engine SDK。显然,您必须在本地运行才能生成 .pyc 文件。它在本地工作,但在网络上遇到问题。所以我做了一些调整来解决这个问题,但后来没有尝试在本地运行。因此,虽然上传的 .py 是新的,但 .pyc 是旧的。


推荐阅读