将Flask应用运行时升级至Python37后app.yml配置引发崩溃求助
解决App Engine Python3.7运行时的
libraries配置错误 问题原因
你碰到的这个错误google.appengine.api.yaml_errors.EventError: libraries entries are only supported by the "python27" runtime其实说得很明白:Python 3.x系列的App Engine标准运行时(包括你用的python37)不再支持app.yaml里的libraries配置段。这个配置是专门给Python 2.7的第一代App Engine环境设计的,第二代Python 3环境改用了更贴近标准Python的依赖管理方式。
解决方案
移除
app.yaml中的libraries区块
直接把你配置里的这段完全删掉就行:libraries: - name: ssl version: "latest"用
requirements.txt管理依赖(按需操作)- 好在Python 3的标准库已经内置了
ssl模块,完全不需要额外指定或安装。如果你的项目还有其他第三方依赖,直接在项目根目录创建requirements.txt文件,把需要的包名写进去就可以,比如:requests==2.31.0 flask==2.3.3 - 部署时App Engine会自动读取这个文件安装依赖,本地开发的话可以用
pip install -r requirements.txt提前装好。
- 好在Python 3的标准库已经内置了
验证修改后的启动
修改完app.yaml后,重新运行dev_appserver命令:dev_appserver app.yml
额外小提示
Python 3的App Engine环境和Python 2.7有不少细节差异,比如:
threadsafe配置在Python 3环境里已经无效了(默认就是线程安全的)- 静态文件的配置可以保留,但要确保
static_dir对应的路径在项目里真实存在 - 你用的Cloud SDK 274.0.0版本对Python 3的本地开发支持是没问题的,不用额外升级
内容的提问来源于stack exchange,提问作者chukwuka mark
相关产品推荐
相关产品推荐

