1

我正在尝试使用 gspread 和 python 从我的 Windows 桌面写入电子表格。以下代码适用于我的 mac 笔记本电脑,但在 pc 上运行时,我收到 SSLHandshakeError。我已确保程序可以使用必要的文件,并尝试创建新项目但没有成功,我总是遇到同样的错误。

这是代码:

#databaseTest.py
import sys
import os
import pyodbc
import json, gspread
from oauth2client.client import SignedJwtAssertionCredentials

json_key = json.load(open('H:\MyProject-ee653db0fe92.json'))
scope = ['https://spreadsheets.google.com/feeds', 'https://docs.google.com/feeds']
credentials = SignedJwtAssertionCredentials(json_key['client_email'], json_key['private_key'], scope)
print "Authorizing..."
try:
    gc = gspread.authorize(credentials)
    input("Done")
except:
    print "SSL error"
    input("Something went wrong")
    gspread.authorize(credentials)

这是我得到的错误的最后一部分:

File "C:\Python27\lib\site-packages\httplib2\__init__.py", line 1059, in connect
raise SSLHandshakeError(e)
httplib2.SSLHandshakeError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:590)
4

2 回答 2

0

事实证明,从桌面连接到电子表格的问题是由它所连接的网络引起的。笔记本电脑连接到不同的网络,这允许它与电子表格进行通信,但台式机的网络有许多防火墙和安全措施来防止这种情况发生。

于 2015-07-29T13:04:54.820 回答
0

我遇到了同样的问题并调试了Google Lib,我发现原因是我使用的是旧版本的httplib2(0.9.2)。当我更新到最新的(0.14.0)时,它起作用了。

如果您已经安装了最新版本,请确保某些库没有httplib2在其依赖项中安装旧版本。

于 2019-10-09T17:19:43.167 回答