python - Jupyter Notebook 中的 Google-oauth

标签 python google-oauth jupyter-notebook

我正在使用 Google oauth2client,样本中的代码是:

flags = argparser.parse_args()
credentials = run_flow(flow, storage, flags)

所有这些都可以在 Python 交互式或 IDE 中运行,但如果我尝试使用 Jupiter Notebook 中的代码,则会出现异常。

在 Jupiter Noteboo 内部,我正在尝试简单的:

    from oauth2client.tools import argparser
    argparser.parse_args()

and got:

usage: __main__.py [--auth_host_name AUTH_HOST_NAME]
                   [--noauth_local_webserver]
                   [--auth_host_port [AUTH_HOST_PORT [AUTH_HOST_PORT ...]]]
                       [--logging_level {DEBUG,INFO,WARNING,ERROR,CRITICAL}]
    __main__.py: error: unrecognized arguments: -f /run/user/1000/jupyter/kernel-c9aa5199-fcea-4884-8e5f-a004c66a733e.json

SystemExit                                Traceback (most recent call last)
<ipython-input-3-d141fc7aebe0> in <module>()
----> 1 argparser.parse_args()

/usr/lib/python3.5/argparse.py in parse_args(self, args, namespace)
   1736         if argv:
   1737             msg = _('unrecognized arguments: %s')
-> 1738             self.error(msg % ' '.join(argv))
   1739         return args
   1740 

/usr/lib/python3.5/argparse.py in error(self, message)
   2392         self.print_usage(_sys.stderr)
   2393         args = {'prog': self.prog, 'message': message}
-> 2394         self.exit(2, _('%(prog)s: error: %(message)s\n') % args)

/usr/lib/python3.5/argparse.py in exit(self, status, message)
   2379         if message:
   2380             self._print_message(message, _sys.stderr)
-> 2381         _sys.exit(status)
   2382 
   2383     def error(self, message):

SystemExit: 2

最佳答案

来自 ArgumentParser.parse_args() 的文档, “默认情况下,参数字符串取自 sys.argv [...]”。在这种情况下,sys.argv 命令行参数是创建 Jupyter notebook 服务器进程的参数。作为解决方法,假设您不需要使用任何标志,您可以替换

flags = argparser.parse_args()

flags = argparser.parse_args([])

您可以像这样在提供的列表中将标志作为字符串添加:

flags = argparser.parse_args(['--auth_host_name=example.org', '--auth_host_port=1234'])

关于python - Jupyter Notebook 中的 Google-oauth,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41961949/

相关文章:

python - 修改python中嵌套字典中的键和值

java - 如何使用 GoogleIdToken 从 java 连接到 google 工作表

jupyter-notebook - 打开Jupyter Notebook时如何在其上执行代码

Python - 查找数据框中包含单词的前 5 行

python - 在 python 2.6.6 中获取子子的子值

oauth-2.0 - 谷歌oauth错误invalid_client没有支持电子邮件

android - Google 登录、服务器端访问 - 为什么它是一种不太安全的登录技术?

jupyter-notebook - 如何在 IPython 笔记本中打印 sympy 变量及其名称?

python - 如何在 pandas.DataFrame 中添加表情符号

python - 使用 python 将具有字符串形式值的属性转换为 vetor