导入错误:没有名为 auth.credentials 的模块



我正在尝试为每个添加GAE StackDriver日志记录功能:https://cloud.google.com/logging/docs/reference/libraries#client-libraries-resources-python

。到我正在运行的简单 Web 服务,并收到以下错误:

ERROR     2017-02-01 02:46:05,320 - root - Traceback (most recent call last):
  File "/home/ubuntu/workspace/.../bootstrap.py", line 11, in <module>
    from app import create_app
  File "/home/ubuntu/workspace/.../app/__init__.py", line 31, in <module>
    from handlers.hdl_logger import blpLog
  File "/home/ubuntu/workspace/.../app/handlers/hdl_logger.py", line 15, in <module>
    from google.cloud import logging
  File "/usr/local/lib/python2.7/dist-packages/google/cloud/logging/__init__.py", line 18, in <module>
    from google.cloud.logging.client import Client
  File "/usr/local/lib/python2.7/dist-packages/google/cloud/logging/client.py", line 32, in <module>
    from google.cloud.client import JSONClient
  File "/usr/local/lib/python2.7/dist-packages/google/cloud/client.py", line 17, in <module>
    import google.auth.credentials
ImportError: No module named auth.credentials

我让所有这些都在虚拟环境中运行。 我仔细查看了依赖项,权限,并检查了dist-packages/google/dir以确认身份验证包在那里。

任何帮助故障排除将不胜感激。

假设您使用的是GAE标准(非灵活),Google-cloud-python客户端库可能会有一些命名空间问题,因为它不使用virtualenv。目前正在努力使其体验更流畅。

解决问题的一种解决方案是破解导入路径。看看我的回答 这里.

但是,如果您使用的是 GAE 标准,则根本不需要客户端库。所有像logging.info这样的 Python logging语句都应该自动出现在 Stackdriver Logging 中,并设置正确的资源和标签。

感谢您的回复。

我能够解决问题。 它与gcloud install,virtualenv,gcloud config和默认身份验证的配置相关联。

我的 gcloud 必须安装在全局命名空间中,然后我的 gcloud 配置在 venv 中工作。

相关内容

最新更新