Как решить "ImportError: Нет модуля с именем google.auth"? - PullRequest
2 голосов
/ 03 мая 2019

Я локально запускаю стандартную среду ядра приложения через dev_appserver и не могу избавиться от следующей ошибки:

ImportError: Нет модуля с именем google.auth

Полный возврат (заменил личные данные на ...):

Traceback (most recent call last):
  File "/Users/.../google-cloud-sdk/platform/google_appengine/google/appengine/runtime/wsgi.py", line 240, in Handle
    handler = _config_handle.add_wsgi_middleware(self._LoadHandler())
  File "/Users/.../google-cloud-sdk/platform/google_appengine/google/appengine/runtime/wsgi.py", line 299, in _LoadHandler
    handler, path, err = LoadObject(self._handler)
  File "/Users/.../google-cloud-sdk/platform/google_appengine/google/appengine/runtime/wsgi.py", line 85, in LoadObject
    obj = __import__(path[0])
  File "/Users/.../.../main.py", line 6, in <module>
    from services.get_campaigns import get_campaigns
  File "/Users/.../.../get_campaigns.py", line 3, in <module>
    from googleads import adwords
  File "/Users/.../.../lib/googleads/__init__.py", line 17, in <module>
    from ad_manager import AdManagerClient
  File "/Users/.../lib/googleads/ad_manager.py", line 28, in <module>
    import googleads.common
  File "/Users/.../lib/googleads/common.py", line 51, in <module>
    import googleads.oauth2
  File "/Users/.../lib/googleads/oauth2.py", line 28, in <module>
    import google.auth.transport.requests
  File "/Users/.../google-cloud-sdk/platform/google_appengine/google/appengine/tools/devappserver2/python/runtime/sandbox.py", line 1154, in load_module
    raise ImportError('No module named %s' % fullname)
ImportError: No module named google.auth

У меня установлен google.auth, как показывает pip show google.auth:

Name: google-auth
Version: 1.6.3
Summary: Google Authentication Library
Home-page: https://github.com/GoogleCloudPlatform/google-auth-library-python
Author: Google Cloud Platform
Author-email: jonwayne+google-auth@google.com
License: Apache 2.0
Location: /Users/.../Library/Python/2.7/lib/python/site-packages
Requires: rsa, pyasn1-modules, cachetools, six
Required-by: googleads, google-auth-oauthlib, google-auth-httplib2, google-api-python-client

Я уже обновил все модулидля которых требуется google.auth - googleads, google-auth-oauthlib, google-auth-httplib2, google-api-python-clien t - но без результатов.

Я не совсем уверен, какие дальнейшие действия предпринять, чтобы устранить эту проблему.Кто-нибудь здесь может указать мне правильное направление?

Ответы [ 2 ]

0 голосов
/ 04 мая 2019

После долгих проб и ошибок я обнаружил ошибку: проблема с версией Python во время выполнения.

В моем файле app.yaml я указал:

service: default
runtime: python27
api_version: 1
threadsafe: false

Там я изменил время выполнения на:

runtime: python37

Спасибо @AlassaneNdiaye за то, что указал мне в этом направлении в комментариях.

0 голосов
/ 04 мая 2019

Ваш google.auth установлен в системных пакетах сайта Python, а не в вашем приложении:

Расположение: /Users/.../Library/Python/2.7/lib/python/site-packages

Вам нужно вместо этого установить внутри приложения зависимости python от зависимостей - обратите внимание на параметр -t lib/ pip в процедуре Копирование сторонней библиотеки , которой вы должны следовать:

Используйте pip (версия 6 или новее) с флагом -t <directory>, чтобы скопировать библиотеки в папку, созданную на предыдущем шаге.Например:

pip install -t lib/ <library_name>
...