Google 身份验证时出现 SSLError

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

我的脚本中有一个以前没有的 SSLError,

事实上,相同的脚本在生产中运行时没有出现此错误,似乎它只在本地主机上触发问题。这是错误:

google.auth.exceptions.TransportError: HTTPSConnectionPool(host='oauth2.googleapis.com', port=443): Max retries exceeded with url: /token (Caused by SSLError(SSLError(524297, '[X509] PEM lib (_ssl.c:4149)'))) 

这非常烦人,因为我无法在不投入生产的情况下对脚本进行调整,有人知道会导致这种情况的原因吗?我已经阅读了有关此问题的一些讨论,但尚未找到解决方案。

我正在使用 google 身份验证库,当我尝试访问 Google 表格时会触发错误:

CLIENT = google_authentication('backend/credentials.json')

# GENERAL DATAFRAMES
CLIENTS_DF = read_from_google(
    CLIENT.open_by_key(os.getenv("SHEET_CLIENTS_ID")))

这是

google_authentication
功能:

import gspread
from google.oauth2.service_account import Credentials


def google_authentication(credentials) -> object:
    # Authenticate with Google Sheets using the JSON key file
    scope = ['https://www.googleapis.com/auth/spreadsheets',
             'https://www.googleapis.com/auth/drive']

    creds = Credentials.from_service_account_file(
        credentials, scopes=scope)

    client = gspread.authorize(creds)

    return client

这是

read_from_google
功能:

def read_from_google(sheet) -> pd.DataFrame:
    """ This function reads the data from the Google Sheet. """

    ws = sheet.worksheet('codes')
    df_previous = pd.DataFrame(data=ws.get_all_records())
    return df_previous

我尝试更改服务帐户,但没有任何改变,

该脚本再次在生产环境中运行,所以我想知道这是否与我的 Ubuntu 虚拟机有关,

提前致谢

python ssl oauth-2.0 google-oauth gspread
1个回答
0
投票

我能够通过使用 VPS 而不是我的本地计算机来解决该问题,这证实了这是我的 Ubuntu 的问题。我很好奇是否有人有办法在不切换机器的情况下解决问题。谢谢!

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