【发布时间】:2021-01-12 17:59:49
【问题描述】:
我正在尝试将几个 python 项目的 GAE 运行时从 python37 升级到 python38。 在我们部署之前,我已经使用 dev_appserver.py 在本地测试了应用程序,但是在将运行时更改为 python38 后出现了未知的运行时错误。根据appengine docs,Python 3.8 应该是受支持的运行时。
我还将所有 gcloud cli 组件更新到了最新版本。这只是被更改/弃用的东西,我只是不知道吗?还是它实际上是 dev_appserver.py 工具中的一个错误和缺失?
任何帮助将不胜感激! :)
RuntimeError: Unknown runtime 'python38'; supported runtimes are 'custom', 'go', 'go111', 'java', 'java7', 'java8', 'php55', 'php72', 'python', 'python-compat',
'python27', 'python37'.
完整的追溯:
Traceback (most recent call last):
File "/mnt/c/Users/Admin/AppData/Local/Google/Cloud SDK/google-cloud-sdk/platform/google_appengine/dev_appserver.py", line 96, in <module>
_run_file(__file__, globals())
File "/mnt/c/Users/Admin/AppData/Local/Google/Cloud SDK/google-cloud-sdk/platform/google_appengine/dev_appserver.py", line 90, in _run_file
execfile(_PATHS.script_file(script_name), globals_)
File "/mnt/c/Users/Admin/AppData/Local/Google/Cloud SDK/google-cloud-sdk/platform/google_appengine/google/appengine/tools/devappserver2/devappserver2.py", line 613, in <module>
main()
File "/mnt/c/Users/Admin/AppData/Local/Google/Cloud SDK/google-cloud-sdk/platform/google_appengine/google/appengine/tools/devappserver2/devappserver2.py", line 601, in main
dev_server.start(options)
File "/mnt/c/Users/Admin/AppData/Local/Google/Cloud SDK/google-cloud-sdk/platform/google_appengine/google/appengine/tools/devappserver2/devappserver2.py", line 373, in start
options.api_host, apiserver.port, wsgi_request_info_)
File "/mnt/c/Users/Admin/AppData/Local/Google/Cloud SDK/google-cloud-sdk/platform/google_appengine/google/appengine/tools/devappserver2/dispatcher.py", line 259, in start
ssl_port)
File "/mnt/c/Users/Admin/AppData/Local/Google/Cloud SDK/google-cloud-sdk/platform/google_appengine/google/appengine/tools/devappserver2/dispatcher.py", line 396, in _create_module
ssl_port=ssl_port)
File "/mnt/c/Users/Admin/AppData/Local/Google/Cloud SDK/google-cloud-sdk/platform/google_appengine/google/appengine/tools/devappserver2/module.py", line 1313,
in __init__
super(AutoScalingModule, self).__init__(**kwargs)
File "/mnt/c/Users/Admin/AppData/Local/Google/Cloud SDK/google-cloud-sdk/platform/google_appengine/google/appengine/tools/devappserver2/module.py", line 599, in __init__
self._module_configuration)
File "/mnt/c/Users/Admin/AppData/Local/Google/Cloud SDK/google-cloud-sdk/platform/google_appengine/google/appengine/tools/devappserver2/module.py", line 226, in _create_instance_factory
sorted(repr(k) for k in runtime_factories.FACTORIES))))
RuntimeError: Unknown runtime 'python38'; supported runtimes are 'custom', 'go', 'go111', 'java', 'java7', 'java8', 'php55', 'php72', 'python', 'python-compat',
'python27', 'python37'.
【问题讨论】:
-
gcloud components udpate? -
我已经将我所有的 gcloud 组件更新到最新版本,但我仍然收到同样的错误,并且支持的运行时列表仍然缺少 python38。
-
不是答案,但可能是一种解决方法。我停止使用
dev_appserver.py。相反,我使用gcloud beta emulators datastore start运行数据存储模拟器,然后使用python main.py运行我的应用程序。 -
感谢@gaefan,但我真的不想将 app.yaml 中的所有处理程序重写到我的 python 应用程序中。
标签: python google-app-engine google-cloud-platform python-3.8