python - App Engine 继续为以前的 Python 版本提供服务

标签 python google-app-engine deployment

似乎最近(一年之内),当我将更新部署到 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))

第一行是添加的,另外两行是旧的。在日志跟踪中,它显示了第二个日志的输出,而不是第一个。奇怪的是,日志中的行号是中间那一行,显示的是新源,执行的是旧源。

最佳答案

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

关于python - App Engine 继续为以前的 Python 版本提供服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50552534/

相关文章:

ms-access - 将 Access 部署为客户端-服务器应用程序

javascript - django self,保存后pk成功函数()

Python SSL 通信在读取时挂起,然后发出错误 54 - connection reset by peer

python 3.5 matplotlib从csv读取日期但不能表示为X轴上的日期

java - 在 Google App Engine (Java) 中保存预先保留的对象时出现问题

java - 未生成 GWT JS *.nocache.js

java - 谷歌应用程序引擎和Java : upload files into the blobstore

perl - 如何打包我的 Perl 应用程序的依赖项以进行部署?

ios - 在开发设备上部署 iOS 应用程序是否有效?

python - 生成一个列表 a(n) 不是 prime + a(k), k < n 的形式