Lorsqu’on travaille dans des environnements professionnels ou des réseaux protégés, il n’est pas rare de rencontrer des problèmes liés à l’utilisation de pip
derrière un proxy. L’un des messages d’erreur les plus frustrants est le fameux "Tunnel connection failed: 403 Forbidden"
. Cet article détaille la solution que j’ai trouvée pour surmonter ce problème et permettre une installation fluide des paquets Python.
Table of Contents
Contexte de l’Erreur
L’erreur "HTTPSConnectionPool(host='files.pythonhosted.org', port=443): Max retries exceeded with url... (Caused by ProxyError('Cannot connect to proxy.', OSError('Tunnel connection failed: 403 Forbidden'))"
indique que pip
tente de se connecter à un serveur (comme files.pythonhosted.org
) via un proxy, mais échoue en raison d’une mauvaise configuration ou d’un problème avec le tunneling HTTPS.
La Solution
Après avoir testé différentes configurations, la solution qui a fonctionné consiste à forcer pip
à reconnaître les serveurs de PyPI comme hôtes de confiance tout en spécifiant le proxy à utiliser. Voici la commande magique :
pip install --trusted-host=pypi.python.org --trusted-host=pypi.org --trusted-host=files.pythonhosted.org --upgrade --proxy=http://proxy.test.fr:3128 pip
Explication de la Commande
--trusted-host
: Ces options permettent d’ajouter les serveurs de PyPI à la liste des hôtes de confiance. Cela contourne les problèmes de vérification de certificat qui peuvent survenir derrière certains proxies.--proxy=http://proxy.test.fr:3128
: Cette option spécifie explicitement le proxy quepip
doit utiliser pour ses connexions HTTP et HTTPS. Remplacezproxy:3128
par l’adresse et le port de votre propre proxy.--upgrade
: Cette option permet de mettre à jourpip
vers la dernière version disponible, ce qui est souvent recommandé pour bénéficier des derniers correctifs.
Pourquoi cette Solution Fonctionne
La clé ici est d’informer pip
explicitement des hôtes de confiance et du proxy à utiliser. Dans de nombreux cas, pip
peut avoir du mal à gérer automatiquement la configuration du proxy, en particulier dans des environnements complexes ou sécurisés. En fournissant ces paramètres directement, vous éliminez les ambiguïtés et permettez à pip
de fonctionner comme prévu.
Conclusion
Si vous rencontrez des problèmes similaires dans votre environnement, cette approche pourrait bien être la solution dont vous avez besoin. En cas de difficultés, n’oubliez pas de vérifier la version de pip
que vous utilisez et de vous assurer que votre proxy est correctement configuré pour gérer les connexions HTTPS.