Python TimeoutError: [Errno 110] Connection timed out Googleapi

40 Views Asked by At

I have a code where I connect to google api and get data from a table. I tested the code through pycharm and on another server - everything worked. Now I run it on a server with Almalinux and get this error:

    (venv) [perezegor@server bots]$ python main.py
    ^CTraceback (most recent call last):
      File "/home/bots/main.py", line 57, in <module>
        data_from_sheet = read_sheet('Sheet1!A2:G')
      File "/home/bots/main.py", line 33, in read_sheet
        result = sheet.values().get(spreadsheetId=SPREADSHEET_ID, range=range_name).execute()
      File "/home/bots/venv/lib/python3.10/site-packages/googleapiclient/_helpers.py", line     130, in positional_wrapper
        return wrapped(*args, **kwargs)
      File "/home/bots/venv/lib/python3.10/site-packages/googleapiclient/http.py", line 923, in execute
        resp, content = _retry_request(
      File "/home/bots/venv/lib/python3.10/site-packages/googleapiclient/http.py", line 191, in _retry_request
        resp, content = http.request(uri, method, *args, **kwargs)
      File "/home/bots/venv/lib/python3.10/site-packages/google_auth_httplib2.py", line 209, in request
        self.credentials.before_request(self._request, method, uri, request_headers)
      File "/home/bots/venv/lib/python3.10/site-packages/google/auth/credentials.py", line 230, in before_request
        self._blocking_refresh(request)
      File "/home/bots/venv/lib/python3.10/site-packages/google/auth/credentials.py", line 193, in _blocking_refresh
        self.refresh(request)
      File "/home/bots/venv/lib/python3.10/site-packages/google/oauth2/service_account.py", line 445, in refresh
        access_token, expiry, _ = _client.jwt_grant(
      File "/home/bots/venv/lib/python3.10/site-packages/google/oauth2/_client.py", line 308, in jwt_grant
        response_data = _token_endpoint_request(
      File "/home/bots/venv/lib/python3.10/site-packages/google/oauth2/_client.py", line 268, in _token_endpoint_request
        response_status_ok, response_data, retryable_error = _token_endpoint_request_no_throw(
      File "/home/bots/venv/lib/python3.10/site-packages/google/oauth2/_client.py", line 215, in _token_endpoint_request_no_throw
        request_succeeded, response_data, retryable_error = _perform_request()
      File "/home/bots/venv/lib/python3.10/site-packages/google/oauth2/_client.py", line 191, in _perform_request
        response = request(
      File "/home/bots/venv/lib/python3.10/site-packages/google_auth_httplib2.py", line 119, in __call__
        response, data = self.http.request(
      File "/home/bots/venv/lib/python3.10/site-packages/httplib2/__init__.py", line 1724, in request
        (response, content) = self._request(
      File "/home/bots/venv/lib/python3.10/site-packages/httplib2/__init__.py", line 1444, in _request
        (response, content) = self._conn_request(conn, request_uri, method, body, headers)
      File "/home/bots/venv/lib/python3.10/site-packages/httplib2/__init__.py", line 1366, in _conn_request
        conn.connect()
      File "/home/bots/venv/lib/python3.10/site-packages/httplib2/__init__.py", line 1156, in connect
        sock.connect((self.host, self.port))
    TimeoutError: [Errno 110] Connection timed out

My code:

def read_sheet(range_name):
    try:
        SERVICE_ACCOUNT_FILE = 'service_account.json'
        SPREADSHEET_ID = ''
        logging.info(f"Reading data from sheet: {range_name}")

        creds = Credentials.from_service_account_file(
            SERVICE_ACCOUNT_FILE,
            scopes=["https://www.googleapis.com/auth/spreadsheets.readonly"],
        )
        service = build('sheets', 'v4', credentials=creds)
        sheet = service.spreadsheets()
        result = sheet.values().get(spreadsheetId=SPREADSHEET_ID, range=range_name).execute()
        return result.get('values', [])
    except Exception as e:
        logging.error(f"Error in read_sheet: {e}")
        raise

Anyone know how to fix it?

Tried contacting gpt, suggested checking by ping, I only use IPv4, packets are returned by it

0

There are 0 best solutions below