>

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를 설정하는 방법을 알려주십시오.


  • 답변 # 1

    App Engine Standard에서 클라이언트 라이브러리 사용에 대한이 다른 Stack Overflow 게시물에서 이미 답변 한 것처럼 GAE Standard는 Google 클라이언트 라이브러리를 지원하지 않으므로App Engine Flexible,>Compute Engine 인스턴스또는REST API(App Engine Standard에서 작동하는 Python 라이브러리도 있음)와 함께 작동합니다.

    특히 google.cloud 를 사용해야하는 경우  라이브러리의 경우 표준이 아닌 App Engine Flexible을 사용해야하지만 표준 환경에서 작업하려는 경우 아래에서 Google API Python 클라이언트 라이브러리를 통해 Cloud Speech API를 사용하여 샘플 App Engine 표준 애플리케이션의 코드를 공유합니다. 이 라이브러리는 GAE Standard 용으로 기본 제공되지 않으므로 타사 라이브러리 인 것처럼 공급 업체에 제공해야합니다. 그러려면 lib 를 만들어야합니다  로컬 애플리케이션의 디렉토리에있는 폴더 및 requirements.txt  아래에서 공유 한 파일을 pip install -t lib/ -r requirements.txt 명령으로이 라이브러리를 설치하십시오. .

    이 샘플 GAE 응용 프로그램을 실행하는 데 필요한 파일 :

    requirements.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에 배포하기 전에.

  • 답변 # 2

    다음을 시도하십시오 : sudo pip install --upgrade google-cloud-speech   

    또는 :

    다른 라이브러리를 사용하고 있습니다.
    이 방법이 도움이 되나요?

    import speech_recognition as sp
    import time
    print("Say something!")
    while True:
        rec = sp.Recognizer()
        with sp.Microphone() as mic:
            audio = rec.listen(mic)
        try:
            print(rec.recognize_google(audio))
        except sp.UnknownValueError:
            print("I cannot understand what you said")
            time.sleep(0.5)
            print("Say again")
        except sp.RequestError as e:
            print("Error".format(e))
        word = rec.recognize_google(audio)
        if word == 'goodbye':
            break
    
    

    설치 :

    sudo pip install SpeechRecognition
    sudo pip install pyaudio
    
    

    오류를 발견 한 경우 :

    sudo apt-get install python-pyaudio
    sudo apt-get install libjack-jackd2-dev portaudio19-dev
    
    

    다시 :

    sudo pip install pyaudio
    
    

    오류가 발견되면 다음을 시도하십시오 :

    sudo pip install --upgrade pyaudio
    
    

관련 자료

  • 이전 JavaScript 이미지 onload에는 실제 src 속성이 없습니다
  • 다음 azure data factory - 런타임 매개 변수로 데이터 세트를 실행할 수 없습니다