Comment Résoudre l’Erreur « Tunnel connection failed: 403 Forbidden » lors de l’Utilisation de pip avec un Proxy

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.

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 que pip doit utiliser pour ses connexions HTTP et HTTPS. Remplacez proxy:3128 par l’adresse et le port de votre propre proxy.
  • --upgrade : Cette option permet de mettre à jour pip 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.