2017-01-19 8 views
0

Ich versuche, Google Tabellen mit Python zu verwenden. Ich ging zu ihrem Quickstart-Tutorial und habe versucht, es für eine Weile hinter einem Firmen-Proxy laufen zu lassen. Ich bin auf Windows 7, und ich habe die Umgebungsvariablen HTTP_PROXY und HTTPS_PROXY entsprechend geändert und auch versucht, sie in der Eingabeaufforderung zu setzen, bevor der Code ausgeführt wird. Code ist unten und Fehler es ausspuckt ist unter dem:Anmeldeinformationen von Google API für Google Tabellen können mit Python nicht abgerufen werden. hinter Unternehmen Proxy

from apiclient.discovery import build 
from httplib2 import Http 
from oauth2client import file, client, tools 


SCOPES = 'https://www.googleapis.com/auth/spreadsheets' 
CLIENT_SECRET = 'client_secret.json' 
store = file.Storage('storage.json') 
credz = store.get() 
if not credz or credz.invalid: 
    flow = client.flow_from_clientsecrets(CLIENT_SECRET, SCOPES) 
    credz = tools.run_flow(flow, store) #ERROR ON THIS LINE 

Error1:

File "C:\Users\myusername\AppData\Local\Programs\Python\Python35\lib\socket.py",

line 732, in getaddrinfo

for res in _socket.getaddrinfo(host, port, family, type, proto, flags): socket.gaierror: [Errno 11004] getaddrinfo failed

Dann ist es spuckt "Während der oben genannten Ausnahmebehandlung, eine weitere Ausnahme ist aufgetreten:"

File

"C:\Users\myusername\AppData\Local\Programs\Python\Python35\lib\site-packages\httplib2__init__.py",

line 994, in _conn_request

raise ServerNotFoundError("Unable to find the server at %s" % conn.host) httplib2.ServerNotFoundError: Unable to find the server at

accounts.google.com

Antwort

0

Sie können die thread überprüfen, wobei die vorgeschlagene Abhilfe benutzerdefinierte Attribute auf Ihre Exception-Klasse hinzuzufügen, ist, wie:

class MyError(Exception): 
    def __init__(self, message, cause): 
     super(MyError, self).__init__(message + u', caused by ' + repr(cause)) 
     self.cause = cause 

try: 
    v = {}['a'] 
except KeyError as e: 
    raise MyError('failed', e) 

Manchmal müssen Sie möglicherweise provide credentials an einen Proxy-Server, um es zu verwenden. In der Regel werden sie mit einem base64-Hash gesendet, der in einem HTTP-Header enthalten ist.

+0

Ich bin mir nicht ganz sicher, wie der erste Teil Ihrer Antwort auf meine Frage bezieht; könnten Sie bitte erklären? Was den zweiten Teil, glaube ich, dass das, was sie für eine vorherige Iteration der Google API (1 oder 2) und ich glaube, dass die neueste Version ist 4. Unabhängig davon, gibt es kein Dokument detailliert, was in Bezug ich Python zu tun um den Proxy für Google API zu konfigurieren, den ich finden konnte. Trotzdem danke! – Jcloud

Verwandte Themen