Gspread 卡在授权上

问题描述 投票:0回答:4

所以我正在运行教程中的代码,但甚至无法完成授权过程。

import gspread
from oauth2client.service_account import ServiceAccountCredentials

scope = ['https://spreadsheets.google.com/feeds']
credentials = ServiceAccountCredentials.from_json_keyfile_name('path/to/oauth.json', scope)

gc = gspread.authorize(credentials)

table = gc.openall()

等待 n 分钟后,当我中断进程时,我看到它挂起

File "/usr/lib/python3.5/http/client.py", line 1252, in connect
    super().connect()
  File "/usr/lib/python3.5/http/client.py", line 849, in connect
    (self.host,self.port), self.timeout, self.source_address)
  File "/usr/lib/python3.5/socket.py", line 702, in create_connection
    sock.connect(sa)
KeyboardInterrupt

执行此方法

gspread.authorize(credentials)

您知道可能出现什么问题吗?我尝试使用多个 oauth json,所以我想这对 Google 来说不是问题。

我尝试自己读取 json 并传递参数,得到相同的结果。

我从两个不同的 Google 帐户创建了 json 文件,其中一个位于公司域中,结果相同。

我在 Ubuntu 16.04、PyCharm 2017.2.4、Python 3.5 和 gspread 0.6.2 上运行代码。

编辑:Jupyter Notebook 上也出现完全相同的问题。

python json google-sheets google-oauth gspread
4个回答
0
投票

好吧,可以了,但我确实等了 10 多分钟。人们在 YouTube 上运行完全相同的代码会立即看到输出。不过,如果您知道造成此延迟的原因是什么或如何调试此套接字问题,请告诉我。


0
投票

也许我能找到解决办法。 我已连接到 Wireguard VPN,连接断开后,API 工作正常 聚苯乙烯 抱歉我的英语太差了


0
投票

我按照文档通过 python 访问工作表,它在 OAuth 令牌生成时挂起......

访问

private window
中的身份验证链接解决了它。

套接字挂起或从 spreadsheet.readonly 切换到完全读写 spreadsheet 导致了一些缓存 cookie 问题。


0
投票

我找到了解决这个问题的方法。在主机上运行:

sysctl net.ipv6.conf.all.disable_ipv6=1

完全归功于这个答案这里

© www.soinside.com 2019 - 2024. All rights reserved.