1

我试图添加 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/ 目录以确认 auth 包在其中。

非常感谢任何帮助故障排除。

4

2 回答 2

1

假设您使用的是 GAE 标准(非灵活),则 google-cloud-python 客户端库可能存在一些命名空间问题,因为它不使用 virtualenv。目前正在开展工作以使其获得更流畅的体验。

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

但是,如果您使用的是 GAE 标准,则根本不需要客户端库。所有 Pythonlogging语句(如logging.info)应自动显示在 Stackdriver Logging 中,并带有正确的资源和标签集。

于 2017-02-01T21:45:46.793 回答
0

感谢您的回复。

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

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

于 2017-03-22T17:01:00.880 回答