из обнаружения импорта apiclient ImportError: нет модуля с именем apiclient - PullRequest
1 голос
/ 11 июля 2020

Я использую apprt c исходный код, который я нашел на github в windows 10. Но у меня появляется эта ошибка, когда я смотрю на консоль Cmd. Похоже, что отсутствует apiclient . Я установил его, используя pip install, но все равно получаю ту же ошибку. Я тоже пробовал pip install --upgrade google-api-python-client, но все равно получаю ту же ошибку.

Traceback (most recent call last):
  File "C:\Users\Gilbert\AppData\Local\Google\Cloud SDK\google-cloud-sdk\platform\google_appengine\google\appengine\runtime\wsgi.py", line 240, in Handle
    handler = _config_handle.add_wsgi_middleware(self._LoadHandler())
  File "C:\Users\Gilbert\AppData\Local\Google\Cloud SDK\google-cloud-sdk\platform\google_appengine\google\appengine\runtime\wsgi.py", line 311, in _LoadHandler
    handler, path, err = LoadObject(self._handler)
  File "C:\Users\Gilbert\AppData\Local\Google\Cloud SDK\google-cloud-sdk\platform\google_appengine\google\appengine\runtime\wsgi.py", line 85, in LoadObject
    obj = __import__(path[0])
  File "C:\Users\Gilbert\Documents\Projets\APPRTC\apprtc-master\src\app_engine\apprtc.py", line 23, in <module>
    import analytics
  File "C:\Users\Gilbert\Documents\Projets\APPRTC\apprtc-master\src\app_engine\analytics.py", line 14, in <module>
    import apiauth
  File "C:\Users\Gilbert\Documents\Projets\APPRTC\apprtc-master\src\app_engine\apiauth.py", line 12, in <module>
    from apiclient import discovery
ImportError: No module named apiclient
INFO     2020-07-11 00:59:21,395 module.py:865] default: "GET / HTTP/1.1" 500 -
ERROR    2020-07-10 23:59:21,443 wsgi.py:269]
Traceback (most recent call last):
  File "C:\Users\Gilbert\AppData\Local\Google\Cloud SDK\google-cloud-sdk\platform\google_appengine\google\appengine\runtime\wsgi.py", line 240, in Handle
    handler = _config_handle.add_wsgi_middleware(self._LoadHandler())
  File "C:\Users\Gilbert\AppData\Local\Google\Cloud SDK\google-cloud-sdk\platform\google_appengine\google\appengine\runtime\wsgi.py", line 311, in _LoadHandler
    handler, path, err = LoadObject(self._handler)
  File "C:\Users\Gilbert\AppData\Local\Google\Cloud SDK\google-cloud-sdk\platform\google_appengine\google\appengine\runtime\wsgi.py", line 85, in LoadObject
    obj = __import__(path[0])
  File "C:\Users\Gilbert\Documents\Projets\APPRTC\apprtc-master\src\app_engine\apprtc.py", line 23, in <module>
    import analytics
  File "C:\Users\Gilbert\Documents\Projets\APPRTC\apprtc-master\src\app_engine\analytics.py", line 14, in <module>
INFO     2020-07-11 00:59:21,443 module.py:865] default: "GET /favicon.ico HTTP/1.1" 500 -
    import apiauth
  File "C:\Users\Gilbert\Documents\Projets\APPRTC\apprtc-master\src\app_engine\apiauth.py", line 12, in <module>
    from apiclient import discovery
ImportError: No module named apiclient

1 Ответ

0 голосов
/ 14 июля 2020

Я думаю, что ваш пример кода устарел, правильный способ импорта службы обнаружения с помощью клиента Google Api в App Engine похож на этот фрагмент кода.

from googleapiclient import discovery
from oauth2client.client import GoogleCredentials

# this will take the credentials that was defined by the command 'gcloud auth application-default login' on local environments, this is already defined on App Engine STD/Flex(no custom runtime) and Cloud functions.

credentials = GoogleCredentials.get_application_default()


# if you are using Cloud functions or App Engine (GAE) STD environment set
# cache_discovery=False, to avoid try to save cache on disk
# if this is not set, the application works fine but will thrown some warnings

service = discovery.build('cloudresourcemanager', 'v1', credentials=credentials, cache_discovery=False)

# this example is to use cloud resource manager, but you can change this for the service that you need
#disable warnings to avoid noise in the logs, this applies for GAE STD & Cloud functions

logging.getLogger('googleapiclient.discovery_cache').setLevel(logging.ERROR)


requirements.txt

google-api-python-client==1.9.3
oauth2client==4.1.3

В этом репозитории Google вы можете найти обновленные примеры

...