【发布时间】:2020-02-04 19:57:45
【问题描述】:
今天去处理一个较旧的 Python2.7 AppEngine Standard 项目,但我似乎无法让 Endpoints 工作。我下载了示例代码以查看我的项目是否是罪魁祸首,但该示例也不起作用。 https://cloud.google.com/endpoints/docs/frameworks/python/get-started-frameworks-python#run_local
dev_appserver.py --host 192.168.1.73 app.yaml --smtp_host=smtp.telus.net --smtp_port=25
INFO 2020-02-04 19:46:38,243 devappserver2.py:289] Skipping SDK update check.
INFO 2020-02-04 19:46:38,303 api_server.py:282] Starting API server at: http://localhost:45473
INFO 2020-02-04 19:46:38,325 dispatcher.py:267] Starting module "default" running at: http://192.168.1.73:8080
INFO 2020-02-04 19:46:38,326 admin_server.py:150] Starting admin server at: http://localhost:8000
一切都开始好了,但是当我到达端点时:/_ah/api/echo/v1/echo
Traceback (most recent call last):
File "/usr/lib/google-cloud-sdk/platform/google_appengine/google/appengine/runtime/wsgi.py", line 240, in Handle
handler = _config_handle.add_wsgi_middleware(self._LoadHandler())
File "/usr/lib/google-cloud-sdk/platform/google_appengine/google/appengine/runtime/wsgi.py", line 311, in _LoadHandler
handler, path, err = LoadObject(self._handler)
File "/usr/lib/google-cloud-sdk/platform/google_appengine/google/appengine/runtime/wsgi.py", line 85, in LoadObject
obj = __import__(path[0])
File "/home/mparkes/app_engine_projects/samples/python-docs-samples/appengine/standard/endpoints-frameworks-v2/echo/main.py", line 19, in <module>
import endpoints
File "/home/mparkes/app_engine_projects/samples/python-docs-samples/appengine/standard/endpoints-frameworks-v2/echo/lib/endpoints/__init__.py", line 33, in <module>
from .apiserving import *
File "/home/mparkes/app_engine_projects/samples/python-docs-samples/appengine/standard/endpoints-frameworks-v2/echo/lib/endpoints/apiserving.py", line 71, in <module>
from endpoints_management.control import client as control_client
File "/home/mparkes/app_engine_projects/samples/python-docs-samples/appengine/standard/endpoints-frameworks-v2/echo/lib/endpoints_management/__init__.py", line 19, in <module>
from . import auth, config, control, gen
File "/home/mparkes/app_engine_projects/samples/python-docs-samples/appengine/standard/endpoints-frameworks-v2/echo/lib/endpoints_management/config/__init__.py", line 17, in <module>
from .service_config import ServiceConfigException
File "/home/mparkes/app_engine_projects/samples/python-docs-samples/appengine/standard/endpoints-frameworks-v2/echo/lib/endpoints_management/config/service_config.py", line 25, in <module>
from apitools.base.py import encoding
File "/home/mparkes/app_engine_projects/samples/python-docs-samples/appengine/standard/endpoints-frameworks-v2/echo/lib/apitools/base/py/__init__.py", line 23, in <module>
from apitools.base.py.credentials_lib import *
File "/home/mparkes/app_engine_projects/samples/python-docs-samples/appengine/standard/endpoints-frameworks-v2/echo/lib/apitools/base/py/credentials_lib.py", line 44, in <module>
import fasteners
File "/home/mparkes/app_engine_projects/samples/python-docs-samples/appengine/standard/endpoints-frameworks-v2/echo/lib/fasteners/__init__.py", line 23, in <module>
from fasteners.lock import locked # noqa
File "/home/mparkes/app_engine_projects/samples/python-docs-samples/appengine/standard/endpoints-frameworks-v2/echo/lib/fasteners/lock.py", line 24, in <module>
from fasteners import _utils
File "/home/mparkes/app_engine_projects/samples/python-docs-samples/appengine/standard/endpoints-frameworks-v2/echo/lib/fasteners/_utils.py", line 39, in <module>
from monotonic import monotonic as now # noqa
File "/home/mparkes/app_engine_projects/samples/python-docs-samples/appengine/standard/endpoints-frameworks-v2/echo/lib/monotonic.py", line 169, in <module>
raise RuntimeError('no suitable implementation for this system: ' + repr(e))
INFO 2020-02-04 19:46:45,501 module.py:865] default: "GET /_ah/api/static/proxy.html?usegapi=1&jsh=m%3B%2F_%2Fscs%2Fapps-static%2F_%2Fjs%2Fk%3Doz.gapi.en.xh-S9KbEGSE.O%2Fam%3DwQc%2Fd%3D1%2Fct%3Dzgms%2Frs%3DAGLTcCNaUSRWzhd71dAsiMVOstVE3KcJZw%2Fm%3D__features__ HTTP/1.1" 500 -
RuntimeError: no suitable implementation for this system: IOError(13, 'file not accessible')
这是否与 2020 年 1 月 1 日取消对 python2.7 的支持有关?作为记录,我的应用在 Appengine 上仍然可以正常运行,但我无法再进行开发了。
[编辑]谷歌云版本:
Google Cloud SDK 279.0.0
alpha 2020.01.31
app-engine-python 1.9.88
app-engine-python-extras 1.9.88
[编辑] Python:
Python 2.7.17 (default, Nov 7 2019, 10:07:09)
[GCC 7.4.0] on linux2
如果我迁移到 Python 3,那么我会丢失端点,我需要完全重写我的客户端代码。
提前致谢。
【问题讨论】:
-
在我看来,根本原因与此有关:github.com/eventlet/eventlet/issues/401 我相信它是由 eventlet 引起的,它在开始时与 Python 混淆了很多。正如我从您的日志中看到的那样,可能 monotonic.py 正在幕后导入 eventlet。您可以尝试此处提到的解决方法:stackoverflow.com/questions/48925318/…
-
您能否更新问题,提供更多关于您的操作系统、运行时环境等的信息?
标签: python google-app-engine google-app-engine-python google-cloud-endpoints-v2