我正在使用gspread访问Google电子表格,但显示SSLError。
当我使用请求库时,发生了类似的事情。
import gspread
from oauth2client.service_account import ServiceAccountCredentials
scope = ['https://spreadsheets.google.com/feeds',
'https://www.googleapis.com/auth/drive']
credentials = ServiceAccountCredentials.from_json_keyfile_name('credentials.json', scope)
gc = gspread.authorize(credentials)`
错误是:
SSLCertVerificationError Traceback (most recent call last)
<ipython-input-1-87ec55398e31> in <module>
7 credentials = ServiceAccountCredentials.from_json_keyfile_name('credentials.json', scope)
8
----> 9 gc = gspread.authorize(credentials)
SSLCertVerificationError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1051)
答案 0 :(得分:0)
它可以与requests == 2.21.0
和certifi == 2018.11.29
一起使用,因此我首先要检查的是您使用的版本是否较旧(尤其是certifi
)。
此外,如果这是由 certifi 引起的,则应该可以通过将 requests 使用的信任库重置为共享系统信任库来解决。通过运行路径:
python3 -c 'import ssl; print(ssl.get_default_verify_paths())'
寻找cafile
或openssl_cafile
的值,然后(将$cafile
替换为获得的值):
export REQUESTS_CA_BUNDLE=$cafile
另请参阅this bug。