Aller au contenu

Utiliser Python 3 et l’API de Google derrière un proxy

Si vous utilisez Python 3 et les API de Google (dont Google Analytics) derrière un proxy, vous rencontrez peut-être un problème.

Et cela, même si vous avez convenablement renseigné les variables d'environnements "http_proxy" et "https_proxy".

En cause : si avec Python 3, vous utilisez la bibliothèque httplib2 utilisée par défaut dans l'API de Google Analytics, pour vous connecter, votre proxy ne sera pas pris en compte. Vous obtiendrez donc une TimeoutError: [WinError 10060].

Il est tentant d'utiliser Python 2 pour contourner le problème, mais avouez que c'est assez frustrant...

Une solution qui m'a semblé viable et d'utiliser la bibliothèque "httplib2shim".

Pour installer via "pip", vous pouvez exécutez la ligne de commande suivante :

pip install urllib3[secure] httplib2shim

Renseignez convenablement les variables d'environnement "http_proxy" et "https_proxy".

Ces variables doivent être renseignées sous la forme suivante:
http://user:password@server:port pour http_proxy
et
https://user:password@server:port pour https_proxy

Maintenant il reste à utiliser "httplib2shim" à la place de "httplib2". La manipulation est très simple. Ainsi, sur ce tutorial Google indiquant comment se connecter via Python depuis un serveur aux APIs de google, il suffit de remplacer le code :

from httplib2 import Http
http_auth = credentials.authorize(Http())

par :

import httplib2shim
http_auth = credentials.authorize(httplib2shim.Http())

Suite à cette manipulation, le proxy est correctement pris en compte.

Publié le

A propos de Antoine Tissier

Diplômé ingénieur en informatique par l'Ecole Centrale de Lille, Antoine a travaillé plus de 10 ans au sein l'agence web altima° ou il a occupé différentes fonctions : ingénieur d'étude, chef de projet technique, ingénieur d'exploitation et Consultant Analytics pendant plus de 6 ans. Il a eu l'occasion de travailler pour de nombreux clients : Petit Bateau, le groupe SEB, le groupe L'Oréal, 3 suisses International, Axa, Cofidis Belglique, ING Direct... sur des missions d'implémentation, d'analyses, d'audit, et de dashboarding / reporting.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *