我的脚本中有一个以前没有的 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 虚拟机有关,
提前致谢
我能够通过使用 VPS 而不是我的本地计算机来解决该问题,这证实了这是我的 Ubuntu 的问题。我很好奇是否有人有办法在不切换机器的情况下解决问题。谢谢!