繁体   English   中英

如何解决“ImportError: No module named google.auth”?

[英]How to solve "ImportError: No module named google.auth"?

我正在通过 dev_appserver 在本地运行标准应用引擎环境,无法摆脱以下错误:

导入错误:没有名为 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——但没有结果。

我不太确定接下来要采取什么措施来调试这个问题。 这里的任何人都可以指出我正确的方向吗?

您的google.auth安装在系统的 Python 站点包中,而不是您的应用程序中:

位置:/Users/.../Library/Python/2.7/lib/python/site-packages

您需要在应用程序中安装应用程序的 python 依赖项 - 请注意复制第三方库过程中的-t lib/ pip 选项,您应该遵循:

  1. 使用带有-t <directory>标志的pip (版本 6 或更高版本)将库复制到您在上一步中创建的文件夹中。 例如:

     pip install -t lib/ <library_name>

经过多次反复试验,我发现了错误:python 运行时版本问题。

在我的 app.yaml 文件中,我指定了:

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

在那里我将运行时更改为:

runtime: python37

感谢@AlassaneNdiaye 在评论中指出我这个方向。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM