我正在尝试使用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)
答案 0 :(得分:0)
事实证明,从桌面连接到电子表格的问题是由连接到的网络引起的。笔记本电脑连接到一个不同的网络,这使它能够与电子表格进行通信,但桌面网络有许多防火墙和安全措施阻止了这一点。
答案 1 :(得分:0)
我遇到了同样的问题,并调试了Google Lib,发现原因是我使用的是httplib2
(0.9.2)的旧版本。当我更新到最新版本(0.14.0)时,它起作用了。
如果您已经安装了最新版本,请确保某些库没有在其依赖项中安装httplib2
的旧版本。