获取ImportError:在关注google云端点教程时没有名为control的模块

时间:2017-01-22 06:38:01

标签: python google-app-engine google-cloud-platform google-cloud-endpoints

我正在跟踪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

任何见解都会很棒

3 个答案:

答案 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 APIGoogle API Client Library的一部分而被标记为预期行为,您可以运行命令'pip install --upgrade google-api-python-client'来安装它,这应解决'No module'错误。也就是说,我们也应该在issue tracker here报告此问题。