【问题标题】:App Engine Error No module google.cloud.speech and appengine.apiApp Engine 错误没有模块 google.cloud.speech 和 appengine.api
【发布时间】:2018-01-17 12:17:55
【问题描述】:

我正在使用基于 Github 上提供的示例的 Google Cloud AppEngine 我正在测试 blobstore 示例,但是当我尝试在该示例中包含 API google.cloud.speech 时,我收到错误“没有名为 google 的模块.cloud.speech”,但在语音演示中使用相同的导入。

dev_appserver.py app.yaml

在语音演示中,当我包含导入 google.appengine.api 时出现错误 No module named appengine.api,但同样的导入适用于 blobstore 示例。

python2.7 transcribeSpeech.py​​ 资源/audio.raw

第一个错误

ERROR    2018-01-17 12:07:09,600 wsgi.py:263]
Traceback (most recent call last):
  File "/google/google-cloud-sdk/platform/google_appengine/google/appengine/runtime/wsgi.py", line 240, in Handle
    handler = _config_handle.add_wsgi_middleware(self._LoadHandler())
  File "/google/google-cloud-sdk/platform/google_appengine/google/appengine/runtime/wsgi.py", line 299, in _LoadHandler
    handler, path, err = LoadObject(self._handler)
  File "/google/google-cloud-sdk/platform/google_appengine/google/appengine/runtime/wsgi.py", line 85, in LoadObject
    obj = __import__(path[0])
  File "/home/user/src/project/python_gae_quickstart_editor-2018-01-14-21-40/appengine/standard/blobstore/gcs/main.py", line 13, in <module>
    from google.cloud import speech
  File "/google/google-cloud-sdk/platform/google_appengine/google/appengine/tools/devappserver2/python/runtime/sandbox.py", line 1147, in load_module
    raise ImportError('No module named %s' % fullname)
ImportError: No module named google.cloud.speech

第二个错误:

Traceback (most recent call last):
  File "transcribeSpeech.py", line 39, in <module>
    import cloudstorage
  File "/home/user/src/project/python_gae_quickstart_editor-2018-01-14-21-40/appengine/standard/blobstore/gcs/lib/cloudstorage/__init__.py", line 20, in <module>
    from .api_utils import RetryParams
  File "/home/user/src/project/python_gae_quickstart_editor-2018-01-14-21-40/appengine/standard/blobstore/gcs/lib/cloudstorage/api_utils.py", line 45, in <module>
    from google.appengine.api import app_identity
ImportError: No module named appengine.apiv

【问题讨论】:

    标签: python python-2.7 google-app-engine google-cloud-speech


    【解决方案1】:

    您将标准 env GAE 应用程序(您的第一次调用)与独立的 Python 应用程序(您的第二次调用)混合在一起 - 不是一回事,它们的工作方式不同,所以不要在它们之间进行行为比较期望相同/相似。见GAE works but import webapp2 failed in Spyder

    如果您的应用程序是 GAE 标准应用程序(dev_appserver.py 唯一支持的应用程序),那么您必须在您的应用程序内提供所有其他库(GAE 不知道/关心安装在您的虚拟环境或您的本地python安装)。见python google app engine stripe integration

    您关注的每个(标准 env GAE)示例都包含一个带有所需库的 requirements.txt - 这是您需要供应商的库,不要只是将整个示例目录转储到您的应用程序中并期望可以工作的示例(正如您的回溯中的文件路径所暗示的那样)。它们只是独立的 sn-ps/示例,而不是一个功能齐全、随时可用的应用程序。请参阅https://github.com/GoogleCloudPlatform/python-docs-samples/tree/master/appengine/standard

    处的说明

    【讨论】:

    • 感谢您的帮助,我按照以下步骤操作: 添加到 requirements.txt 库 google-cloud-speech=0.30.0 然后 pip install -t lib/ -r requirements.txt 在 appengine_config .py codefrom google.appengine.ext import vendor # 添加安装在“lib”文件夹中的所有库。 vendor.add('lib') code 仍然收到错误 ImportError: No module named google.cloud.speech 但库在 lib 目录中,路径在 sys.path 中我也尝试使用 google-api -python-client 没有成功。谢谢
    • 我无法复制,from google.cloud import speech 为我工作,但似乎该库使用mp 库并遇到此问题:github.com/googleapis/gax-python/issues/149,因此您可能无法使用它在 GAE 上。
    猜你喜欢
    • 2016-11-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-12
    • 1970-01-01
    • 2015-09-02
    • 2018-05-29
    • 2016-07-12
    相关资源
    最近更新 更多