如何在Google App Engine中导入Google Cloud语音识别(python)

2023-12-10

我想在我的 Google App Engine python 应用程序上使用 google.cloud 库。自从我在本地安装了这个库以来,我的所有测试都在我的本地工作。我原以为 GAE 默认支持它,但它是不支持.

这是我得到的错误:

from google.cloud import speech
ImportError: No module named cloud

我查看了添加第三方库https://cloud.google.com/appengine/docs/standard/python/tools/using-libraries-python-27

按照说明进行操作后,我遇到了另一个错误。

(/base/alloc/tmpfs/dynamic_runtimes/python27/54c5883f70296ec8_unzipped/python27_lib/versions/1/google/appengine/runtime/wsgi.py:263)
Traceback (most recent call last):
  File "/base/alloc/tmpfs/dynamic_runtimes/python27/54c5883f70296ec8_unzipped/python27_lib/versions/1/google/appengine/runtime/wsgi.py", line 240, in Handle
    handler = _config_handle.add_wsgi_middleware(self._LoadHandler())
  File "/base/alloc/tmpfs/dynamic_runtimes/python27/54c5883f70296ec8_unzipped/python27_lib/versions/1/google/appengine/runtime/wsgi.py", line 299, in _LoadHandler
    handler, path, err = LoadObject(self._handler)
  File "/base/alloc/tmpfs/dynamic_runtimes/python27/54c5883f70296ec8_unzipped/python27_lib/versions/1/google/appengine/runtime/wsgi.py", line 85, in LoadObject
    obj = __import__(path[0])
  File "/base/data/home/apps/s~goooogle-translate/20180126t023051.407206565499030997/main.py", line 18, in <module>
    from google.cloud import speech
  File "/base/data/home/apps/s~goooogle-translate/20180126t023051.407206565499030997/lib/google/cloud/speech/__init__.py", line 22, in <module>
    from google.cloud.speech.client import Client
  File "/base/data/home/apps/s~goooogle-translate/20180126t023051.407206565499030997/lib/google/cloud/speech/client.py", line 25, in <module>
    from google.cloud.speech._gax import GAPICSpeechAPI
  File "/base/data/home/apps/s~goooogle-translate/20180126t023051.407206565499030997/lib/google/cloud/speech/_gax.py", line 17, in <module>
    from google.cloud.gapic.speech.v1.speech_client import SpeechClient
  File "/base/data/home/apps/s~goooogle-translate/20180126t023051.407206565499030997/lib/google/cloud/gapic/speech/v1/speech_client.py", line 31, in <module>
    from google.gapic.longrunning import operations_client
  File "/base/data/home/apps/s~goooogle-translate/20180126t023051.407206565499030997/lib/google/gapic/longrunning/operations_client.py", line 45, in <module>
    from google.gax import api_callable
  File "/base/data/home/apps/s~goooogle-translate/20180126t023051.407206565499030997/lib/google/gax/__init__.py", line 36, in <module>
    import multiprocessing as mp
  File "/base/alloc/tmpfs/dynamic_runtimes/python27/54c5883f70296ec8_unzipped/python27_dist/lib/python2.7/multiprocessing/__init__.py", line 65, in <module>
    from multiprocessing.util import SUBDEBUG, SUBWARNING
  File "/base/alloc/tmpfs/dynamic_runtimes/python27/54c5883f70296ec8_unzipped/python27_dist/lib/python2.7/multiprocessing/util.py", line 41, in <module>
    from subprocess import _args_from_interpreter_flags
ImportError: cannot import name _args_from_interpreter_flags

我很难理解这个。如果您以前做过此操作,请告诉我如何在 GAE 中设置 google.cloud。


正如在另一篇 Stack Overflow 帖子中已经回答的那样在 App Engine Standard 中使用客户端库,GAE Standard 不支持 Google 客户端库,因此您可以选择灵活的应用引擎, a 计算引擎实例或与REST API(它还有一个在 App Engine Standard 中工作的 Python 库)。

如果您特别需要使用google.cloud库,您将必须使用 App Engine 灵活版而不是标准版,但如果您更愿意使用标准环境,下面我通过以下方式分享使用 Cloud Speech API 的示例 App Engine 标准应用程序的代码:Google API Python 客户端库。该库不是 GAE 标准内置的,因此您必须供应商就好像它是第三方库一样。为此,您必须创建lib本地应用程序目录中的文件夹,以及requirements.txt我在下面分享的文件,然后使用命令安装这个库pip install -t lib/ -r requirements.txt.

运行此示例 GAE 应用程序所需的文件:

要求.txt

google-api-python-client

appengine_config.py

from google.appengine.ext import vendor

# Add any libraries install in the "lib" folder.
vendor.add('lib')

app.yaml

runtime: python27
api_version: 1
threadsafe: True

handlers:
- url: /.*
  script: main.app

main.py

import webapp2
from apiclient.discovery import build
from oauth2client.client import GoogleCredentials

class MainPage(webapp2.RequestHandler):
    # Presentation page
    def get(self):
        self.response.headers['Content-Type'] = 'text/plain'
        self.response.write('This is a sample App Engine Standard application working with Cloud Speech API! :)\n\nGo to /speechAPI to transcribe your audio file (you will need to upload it to one of your Cloud Storage buckets)!')

class Recognize(webapp2.RequestHandler):
    # Working with Python API Client Library (NOT NEW CLIENT LIBRARIES)
    def get(self):
        # Add credentials
        credentials = GoogleCredentials.get_application_default()
        service = build('speech', 'v1', credentials=credentials)

        # Methods available in: https://developers.google.com/resources/api-libraries/documentation/speech/v1/python/latest/index.html
        collection = service.speech()

        # Build the data structure JSON-like
        data = {}
        data['audio'] = {}
        data['audio']['uri'] = 'gs://<BUCKET>/<FOLDER>/<FILE>'
        data['config'] = {}
        data['config']['encoding'] = '<ENCODING>'
        data['config']['languageCode'] = '<LANGUAGE_CODE>'
        data['config']['sampleRateHertz'] = <SAMPLE_RATE>

        # Build the request and execute it
        request = collection.recognize(body=data)
        res = request.execute()

        # Webapp2 Response
        self.response.headers['Content-Type'] = 'text/plain'
        self.response.write(res)


app = webapp2.WSGIApplication([
    ('/', MainPage),
    ('/speechAPI', Recognize),
], debug=True)

该应用程序也可以在本地开发服务器中运行,因此您可以使用以下命令对其进行测试dev_appserver.py app.yaml在将其部署到 App Engine 之前。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在Google App Engine中导入Google Cloud语音识别(python) 的相关文章

随机推荐

  • 为什么 ggplot 在指定其他颜色时使用默认颜色?

    我试图让 ggplot2 将直方图的一行显示为与其余部分不同的颜色 在这方面我已经成功了 但是 当指定不同的颜色集时 ggplot 将使用默认颜色 我确信我的代码中有错误 但我无法确定它在哪里 数据和代码如下 创建数据 library gg
  • Matplotlib colorbar:如何手动设置间隔?

    我使用以下代码片段创建自定义颜色条 import pylab as pl import numpy as np a np array 0 10000 100000 400000 500000 pl figure figsize 9 1 5
  • 使用 PHP/Apache 限制对静态文件(html、css、img 等)的访问

    假设您的服务器上的目录中有大量 html css js img 等文件 通常 互联网上的任何用户都可以通过简单地输入完整的 URL 来访问这些文件 如下所示 http example com static files sub index h
  • 如何授予对 public_html 目录之外的文件的下载访问权限?

    出于安全目的 我将文件存储在 public html 文件夹之外 但是 我想以某种方式链接到特定文件 用户可以在其中下载这些文件之一 我正在使用 jquery 脚本 它允许我指定服务器 PATH 作为上传文件夹 并且它会在 public h
  • C# 访问修饰符部分,如 C++

    我需要写吗allC 中的访问修饰符 static class Node Node link Node link int data public void setlink Node next void display 我想使用访问修饰符部分
  • 如何在助手中访问小部件数据

    在我的前端助手中 我使用一个参数并将其提供给所有的 data widget 是否可以在帮助程序上下文中访问 data widget 我只找到了 self output 对象树 但我认为这不是一个高质量的解决方案 Thanks 编辑代码示例
  • 无法让 Twitter OAuth 回调身份验证在 Cocoa 应用程序中工作

    我正在使用 MGTwitterEngine 和 OAuthConsumer 框架 并且主要遵循以下说明使用OAuth消费者 为了使用 OAuth 并且不让用户处理基于 oob PIN 的身份验证 您需要启用对应用程序的回调 要在桌面 或 i
  • 如何识别窗口服务中的登录事件

    我有一个 Windows 服务 可以获取用户详细信息并将结果保存到日志文本文件中 而且 我的问题是当我注销系统并再次登录时 即无需重新启动机器 我还想将登录系统的时间节省到该日志文件中 如何在窗口服务中编写登录事件 请帮助评论 我使用了下面
  • 在 Tornado 中“超时”请求的正确方法

    我设法编写了一个相当愚蠢的错误 该错误将使我的一个请求处理程序运行非常慢的数据库查询 有趣的是 我注意到即使在围攻完成很久之后 Tornado 仍然在不断地处理请求 有时是 90 年代后 评论 gt 我不是 100 确定 Siege 的工作
  • 在另一个线程中创建 WPF 元素

    我可以在不同的线程上运行 2 个或更多 WPF 窗口 问题是现在我的应用程序分割在许多窗口中 我真正想要的是有一个主窗口包含一个网格 其中每个单元格都包含由不同线程管理的元素 是否可以创建一个由不是管理父窗口 包含窗口的线程管理的 UIEl
  • 按键升序对数组进行排序,并将“粘性”键指定为第一个

    我有一个多维数组 array array B gt array Banana Yello O gt array Orange Orange A gt array Apple Green S gt array Strawberry Red o
  • 在有内容的页面上触发文件下载

    我见过许多网站在包含现有 HTML 内容的页面上触发文件另存为对话框 他们如何做到这一点 我知道如何设置正确的标题 例如内容处置等 但是当我这样做时 页面的内容不会加载 并且立即触发文件下载 创建一个常规 HTML 页面 然后添加一个 ME
  • JavaScript:使值对数组形成值数组

    有没有一种优雅 实用的方法来转换这个数组 1 5 9 21 进入这个 1 5 5 9 9 21 我知道我可以forEach数组并收集值以创建一个新数组 有没有一种优雅的方式来做到这一点 lodash不使用forEach 您可以映射一个拼接数
  • 向JTable添加加载循环

    我有一个从数据库加载数据的 JTable 因为有时数据太多 我想在Jtable内添加一个加载圆圈来通知用户数据正在加载 这是我希望的图像 这可能吗 在 Swing 中如何实现呢 PS 我不想使用进度条 我只想使用表格内的圆圈 UPDATE
  • 为什么在 LIKE 过滤器中使用下划线字符会给出所有结果?

    我写了下面的 SQL 查询LIKE健康 状况 SELECT FROM Manager WHERE managerid LIKE AND managername LIKE In the LIKE我想搜索任何下划线 但我知道我的列数据没有下划线
  • 使行延伸到 CSS 网格中的所有列

    尽管我已经指定了我希望导航延伸到哪些列 但我一直无法让我的导航完全延伸到我的列上 如果您可以看一下我的代码并指出我的错误太棒了 这是浏览器中 HTML 文件的图像 body margin 0 padding 0 container max
  • 将 datetimepicker 连接到 angularjs

    我需要使用 Angular Bootstrap 创建一个包含日期和时间的输入字段 我找到了这个日期时间选择器它看起来正是我需要的 一个字段中的日期和时间 并阻止用户错误的版本 我写了一个指令 datepickers 启动了 但它改变了视图
  • 为什么分配给 True/False 不能按我的预期工作?

    作为回答另一个问题的一部分 我编写了以下代码 乍一看其行为似乎很奇怪 print True outputs true True False print True outputs false True True print True outp
  • 谷歌地图反应没有出现

    我正在尝试使用google map react 但是当我尝试渲染它时 什么也没有出现 我错过了什么吗 import GoogleMap from google map react import React Component from re
  • 如何在Google App Engine中导入Google Cloud语音识别(python)

    我想在我的 Google App Engine python 应用程序上使用 google cloud 库 自从我在本地安装了这个库以来 我的所有测试都在我的本地工作 我原以为 GAE 默认支持它 但它是不支持 这是我得到的错误 from