我正在跟踪this tutorial关于在谷歌应用引擎上的python中设置云端点并继续获取导入错误
ImportError: No module named control
输入时生成OpenAPI配置文件步骤
python lib/endpoints/endpointscfg.py get_swagger_spec main.EchoApi --hostname echo-api.endpoints.projectid.cloud.goog
我在新帐户上执行了这些步骤,但仍然遇到此错误。不知道我做错了什么/我正在跳过的步骤。
这里是追溯:
Traceback (most recent call last):
File "lib/endpoints/endpointscfg.py", line 625, in <module>
main(sys.argv)
File "lib/endpoints/endpointscfg.py", line 621, in main
args.callback(args)
File "lib/endpoints/endpointscfg.py", line 479, in _GenOpenApiSpecCallback
application_path=args.application)
File "lib/endpoints/endpointscfg.py", line 324, in _GenOpenApiSpec
application_path=application_path)
File "lib/endpoints/endpointscfg.py", line 181, in GenApiConfig
module = __import__(module_name, fromlist=base_service_class_name)
File "/home/hairyhenry/python-docs-samples/appengine/standard/endpoints-frameworks-v2/echo/main.py", line 19, in <module>
import endpoints
File "/home/hairyhenry/python-docs-samples/appengine/standard/endpoints-frameworks-v2/echo/lib/endpoints/__init__.py", line 29, in <module>
from apiserving import *
File "/home/hairyhenry/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
ImportError: No module named control
任何见解都会很棒
答案 0 :(得分:0)
我使用2.0.0时遇到了同样的问题,但使用b2版本却对我有用。
删除lib
文件夹并运行:
pip install -t lib google-endpoints==2.0.0b2
使用此版本将生成一个名为echo-v1_swagger.json
的文件,而不是文档中所述的echov1openapi.json
,因此您必须运行以下命令来部署配置文件:
gcloud service-management deploy echo-v1_swagger.json
答案 1 :(得分:0)
这可能是因为您的环境与应用程序之间存在库冲突。这是this page所指出的,最后的建议对我有用:
我建议在运行endpointscfg.py之前激活一个空的virtualenv,这样你的系统包就不会引起问题。
我是这样做的:
mkdir /tmp/ve
virtualenv /tmp/ve
/tmp/ve/bin/python lib/endpoints/endpointscfg.py ...
答案 2 :(得分:0)
在问题跟踪器上报告的问题与#35901199相同,并且由于Control API是Google API Client Library的一部分而被标记为预期行为,您可以运行命令'pip install --upgrade google-api-python-client'来安装它,这应解决'No module'错误。也就是说,我们也应该在issue tracker here报告此问题。