python - 如何解决 "ImportError: No module named google.auth"?

标签 python google-app-engine google-authentication

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

ImportError: No module named 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 - 但没有结果。

我不太确定下一步要采取什么措施来调试此问题。这里有人能指出我正确的方向吗?

最佳答案

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

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

您需要在应用程序中安装应用程序的 python 依赖项 - 请注意 -t lib/ Copying a third-party library 中的 pip 选项您应该遵循的程序:

  1. Use pip (version 6 or later) with the -t <directory> flag to copy the libraries into the folder you created in the previous step. For example:

    pip install -t lib/ <library_name>
    

关于python - 如何解决 "ImportError: No module named google.auth"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55975930/

相关文章:

node.js - Node JS+ Passport 认证+多种用户类型

python - 查找并检查列表中的项目

java - 如何使用 jython 将参数传递给 java 中的 python 脚本

python - GAE/Python - 从主类而不是从被调用的方法重定向工作

cookies - 在没有第三方 Cookie 的情况下使用 Google Firebase 身份验证

google-authentication - ArgumentException : The 'ClientId' option must be provided.(参数 'ClientId')

python - len() 与 arange() 的行为

python - % 运算符在欧拉计划 #1 的这个解决方案中是如何工作的

google-app-engine - 如何为 Google App Engine 上的 BigQuery 设置截止日期

python - 可以在 Google App Engine 中动态启动动态后端吗?