我已按照docs中的说明在我的Ubuntu PC上安装了最新版本的google cloud sdk google-cloud-sdk-app-engine-python
,以便对google-cloud-endpoints-framework
示例app进行测试。< / p>
但是在调用api请求时,我得到了以下回溯。似乎GAE sdk中的google
包与由google-endpoints
包自动安装到google
文件夹的lib
包之间存在冲突。
$ dev_appserver.py app.yaml
INFO 2017-03-14 07:51:36,173 devappserver2.py:764] Skipping SDK update check.
INFO 2017-03-14 07:51:36,199 api_server.py:268] Starting API server at: http://localhost:44561
INFO 2017-03-14 07:51:36,213 dispatcher.py:199] Starting module "default" running at: http://localhost:8080
INFO 2017-03-14 07:51:36,213 admin_server.py:116] Starting admin server at: http://localhost:8000
INFO 2017-03-14 07:51:45,811 module.py:806] default: "GET /_ah/start HTTP/1.1" 404 -
ERROR 2017-03-14 07:51:45,877 wsgi.py:263]
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 299, 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/gemini/gae projects/python-docs-samples/appengine/standard/endpoints-frameworks-v2/echo/main.py", line 19, in <module>
import endpoints
File "/home/gemini/gae projects/python-docs-samples/appengine/standard/endpoints-frameworks-v2/echo/lib/endpoints/__init__.py", line 29, in <module>
from apiserving import *
File "/home/gemini/gae projects/python-docs-samples/appengine/standard/endpoints-frameworks-v2/echo/lib/endpoints/apiserving.py", line 74, in <module>
from google.api.control import client as control_client
File "/usr/lib/google-cloud-sdk/platform/google_appengine/google/appengine/tools/devappserver2/python/sandbox.py", line 1001, in load_module
raise ImportError('No module named %s' % fullname)
ImportError: No module named google.api
我尝试创建一个单独的virtualenv但问题仍然存在。
答案 0 :(得分:3)
以下是谷歌家伙的回复..
目前不支持使用端点框架v2的本地开发,您需要部署该应用程序。
https://github.com/GoogleCloudPlatform/python-docs-samples/issues/853
答案 1 :(得分:2)
您的错误:
ImportError: No module named google.api
因此,首先需要安装gcloud python模块和 google-api-python-client 模块:
pip install --upgrade gcloud
pip install --upgrade google-api-python-client
来自here
答案 2 :(得分:1)
我的lib
目录中的其他Google软件包存在类似问题。
我在我的appengine_config.py
文件中使用以下代码解决了/ monkey修补它:
import sys
import os
import google
from google.appengine.ext import vendor
lib_directory = os.path.dirname(__file__) + "<relative path to lib dir>"
google.__path__.append(os.path.join(lib_directory, 'google'))
logging.info("importing lib %s" % (lib_directory))
vendor.add(lib_directory)