Bad Gateway 502将应用程序从Python 3.7升级到Python 3.8时出错



在谷歌应用引擎上成功从Python 2.7移植到3.7后,我决定尝试升级到Python 3.8运行时。

我在Python 3.7的配置中所做的唯一更改是在app.yaml文件中指定python38运行时,并将谷歌云数据存储添加到requirements.txt

当我部署并运行应用程序运行时,我会得到一个坏网关502(nginx(。以下是stderr日志:

Traceback (most recent call last):
File "/layers/google.python.webserver/gunicorn/gunicorn/arbiter.py", line 583, in spawn_worker
worker.init_process()
File "/layers/google.python.webserver/gunicorn/gunicorn/workers/gthread.py", line 92, in init_process
super().init_process()
File "/layers/google.python.webserver/gunicorn/gunicorn/workers/base.py", line 119, in init_process
self.load_wsgi()
File "/layers/google.python.webserver/gunicorn/gunicorn/workers/base.py", line 144, in load_wsgi
self.wsgi = self.app.wsgi()
File "/layers/google.python.webserver/gunicorn/gunicorn/app/base.py", line 67, in wsgi
self.callable = self.load()
File "/layers/google.python.webserver/gunicorn/gunicorn/app/wsgiapp.py", line 49, in load
return self.load_wsgiapp()
File "/layers/google.python.webserver/gunicorn/gunicorn/app/wsgiapp.py", line 39, in load_wsgiapp
return util.import_app(self.app_uri)
File "/layers/google.python.webserver/gunicorn/gunicorn/util.py", line 358, in import_app
mod = importlib.import_module(module)
File "/opt/python3.8/lib/python3.8/importlib/__init__.py", line 127, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "<frozen importlib._bootstrap>", line 1014, in _gcd_import
File "<frozen importlib._bootstrap>", line 991, in _find_and_load
File "<frozen importlib._bootstrap>", line 975, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 671, in _load_unlocked
File "<frozen importlib._bootstrap_external>", line 783, in exec_module
File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
File "/srv/main.py", line 2, in <module>
from google.cloud import ndb
File "/layers/google.python.pip/pip/google/cloud/ndb/__init__.py", line 28, in <module>
from google.cloud.ndb.client import Client
File "/layers/google.python.pip/pip/google/cloud/ndb/client.py", line 26, in <module>
from google.cloud.datastore_v1.gapic import datastore_client
ModuleNotFoundError: No module named 'google.cloud.datastore_v1.gapic'

我的requirements.txt文件包含以下内容:

googleapis_common_protos
google-cloud-ndb
google-cloud-datastore
Flask==0.10.1

我没有在app.yaml文件中指定入口点。根据文件,在这种情况下,没有要求在requirements.txt中包含gunicorn。最初,我没有包含谷歌云数据存储库。Python37运行时不需要它。似乎与python38运行时的错误没有什么区别。

如前所述,这与python37运行时完美配合。

谢谢。

看起来是

requirements.txt中的Flask==0.10.1。取出版本规范,并删除谷歌云数据存储,作为冗余。

现在一切正常。

很抱歉给你带来麻烦。但我想发布这个问题有助于我发现指定旧版本烧瓶的问题。

谨致问候,S

最新更新