【问题标题】:How can I most easily authenticate with gspread in a Jupyter notebook?如何在 Jupyter 笔记本中最轻松地使用 gspread 进行身份验证?
【发布时间】:2018-04-27 18:49:45
【问题描述】:

我的许多工作伙伴主要对电子表格感到满意,而不是 python、scala、java、SQL 等。这些人是非技术人员,但他们需要数据,而我的工作就是让他们掌握数据。阅读有关 Google colaboratory 和 their example notebook on io 的信息后,我发现了 gspread 和明显的身份验证简单性:

from google.colab import auth
auth.authenticate_user()

import gspread
from oauth2client.client import GoogleCredentials

gc = gspread.authorize(GoogleCredentials.get_application_default())

为了简化对 Presto、Hive、Spark 等的访问,我们使用 Jupyter 的本地部署和多项自定义设置,因此我尝试在我们的环境中安装 colab,但无济于事(它不是开源的)。我发现的下一个最佳方法是using oauth2,但这似乎需要一个 GCP 帐户才能访问Google Developer's Console。对于归结为使用远程服务进行身份验证的事情来说,这似乎过于复杂。

那么,请注意,如何最轻松地在 jupyter notebook 中使用 gspread 进行身份验证?

【问题讨论】:

    标签: google-oauth jupyter-notebook gspread google-colaboratory


    【解决方案1】:

    我可以解释在 Colab 中实现这项工作的要素:

    • authenticate_user 的调用会调用gcloud auth login --enable-gdrive-access(使用other args)。
    • 然后,我们将 GOOGLE_APPLICATION_CREDENTIALS 环境变量设置为这些凭据的导出副本。
    • 任何使用Application Default Credentials 的代码现在都可以发现这些凭据;特别是,oauth2client 会找到它们(如上例所示)。

    与往常一样,您应该小心放置凭据的位置;就 Colab 而言,我们有一个相当受控的系统,并且可以接受这种设置(尽管与所有事情一样,未来可能会发生变化)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-10-17
      • 2016-10-14
      • 2021-02-05
      • 1970-01-01
      • 1970-01-01
      • 2018-11-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多