Comment utiliser pip avec des proxys

Mettez en place des proxys avec pip pour contourner les restrictions, améliorer la sécurité et rationaliser la gestion des paquets.
14 min de lecture
How to Use Pip with Proxies blog image

Dans cet article, vous apprendrez à configurer et à utiliser des proxys avec pip pour une gestion transparente des paquets dans les réseaux restreints.

Différences entre les procurations publiques et privées

Lors de la sélection d’un mandataire, il est important de déterminer s’il s’agit d’un mandataire public ou privé.

Procurations publiques

Les proxys publics sont ouverts à tous et souvent dépourvus d’authentification. Bien qu’ils permettent d’accéder rapidement à une adresse IP, ils présentent des inconvénients : vitesses plus lentes, connexions instables et interdictions potentielles d’accès à l’IP. Parce qu’ils sont gratuits et largement disponibles, ils sont souvent dépourvus de fonctionnalités essentielles telles que les rotations de proxy, la mise en cache et le contrôle d’accès, ce qui les rend peu fiables dans un environnement de production.

Une URL publique peut être formatée comme suit : https://proxyserver:port.

Procurations privées

Les proxys privés nécessitent une authentification et offrent une plus grande sécurité, une plus grande stabilité et des fonctions avancées, bien qu’ils aient généralement un coût. Ils offrent une connexion sécurisée, rapide et fiable à une adresse IP dédiée, ainsi que des fonctionnalités telles que l’authentification et la rotation du proxy.

L’accès est généralement contrôlé par l’authentification, souvent en incluant un nom d’utilisateur et un mot de passe comme préfixe de l’URL du proxy, comme ceci : https://username:password@proxyserver:port.

Utiliser des proxy avec pip

Pour commencer à utiliser un proxy avec pip, vous devez rassembler quelques détails sur votre proxy. L’exemple suivant utilise un proxy public avec les détails suivants :

  • Une adresse de proxy pour le service de proxy
  • Le port dont le service proxy a besoin pour communiquer

Le répertoire proxy-list suivant fournit des adresses de proxy publiques testées quotidiennement qui peuvent être utiles pour les tests mais ne doivent pas être utilisées dans des environnements de production.

Dans le repo proxy-list, vérifiez le fichier proxy-list-status.txt pour trouver un proxy public qui fonctionne. Pour ce faire, vérifiez dans le fichier la présence d’une adresse à côté de laquelle figure le drapeau de réussite, indiquant qu’elle fonctionne :

Sélection d'un mandataire public

Pour ce tutoriel, utilisez 45.185.162.203:999 comme adresse de proxy public. Cela signifie que l’adresse du serveur proxy est http://45.185.162.203:999.

Configuration d’un proxy pip avec la ligne de commande

La manière la plus rapide de configurer un proxy pip est de passer l’adresse lors de l’appel de la commande pip install en utilisant l’option de ligne de commande --proxy.

En utilisant l’adresse publique du proxy, testez votre accès au proxy et aux paquets à l’aide de la commande suivante :

# Public Proxy
pip install boto3 --proxy http://45.185.162.203:999

Cette méthode est utile pour tester et valider rapidement les proxys avant de configurer définitivement un nouveau proxy. Si vous publiez des paquets pip, cela permet de vérifier la disponibilité à partir d’une autre IP.

Configuration d’un proxy pip avec le fichier de configuration pip

Pour configurer de manière permanente un proxy pip, le fichier pip config est une solution simple et déclarative. Son emplacement dépend de votre système d’exploitation et peut être trouvé dans les répertoires suivants :

  • Global : fichier de configuration à l’échelle du système, partagé par tous les utilisateurs.
  • User : Fichier de configuration par utilisateur pour l’utilisateur qui exécute le processus pip.
  • Site : Fichier de configuration par environnement utilisant les environnements virtuels Python.

Ces fichiers de configuration peuvent être trouvés ou créés aux endroits suivants pour chaque système :

Linux/macOS

Sur les systèmes Linux, le fichier de configuration de pip s’appelle pip.conf et se trouve dans les emplacements suivants :

  • Global :
    • Systèmes basés sur Debian : Modifiez ou créez le fichier pip.conf dans le répertoire/etc`.
    • systèmes basés sur macOS : Modifiez ou créez le fichier /Library/Application Support/pip/pip.conf.
  • Utilisateur :
    • Systèmes basés sur Debian : Modifiez ou créez le fichier ~/pip/pip.conf.
    • systèmes basés sur macOS : Modifiez ou créez le fichier de configuration ~/.config/pip/pip.conf.
  • Site : Lorsqu’il est chargé dans un environnement virtuel Python, il est situé dans $VIRTUAL_ENV/pip.conf.

Fenêtres

Sur un système Windows, le fichier est un fichier pip.ini et se trouve dans les emplacements suivants :

  • Global : Modifier ou créer le fichier C:\NProgramData\Npip.ini. Notez que ce fichier est caché par défaut sur les systèmes Windows, mais qu’il est accessible en écriture.
  • Utilisateur : Modifier ou créer pip.ini dans %APPDATA%\pip\.
  • Site : Lorsqu’il est chargé dans un environnement virtuel Python, modifiez ou créez le fichier de configuration à %VIRTUAL_ENV%\pip.ini.

Contenu du fichier de configuration

Pour cet exemple, un fichier de configuration pip de l’environnement virtuel Python est utilisé. Dans un environnement virtuel activé, éditez $VIRTUAL_ENV/pip.conf sur les systèmes basés sur Debian ou %VIRTUAL_ENV%\pip.ini sur Windows.

Dans le fichier de configuration, vous devez mettre à jour la clé de proxy avec le proxy HTTP ou HTTPS de votre choix :

[global]
proxy = http://45.185.162.203:999

Une fois le fichier sauvegardé, le proxy est utilisé automatiquement avec n’importe quelle commande pip, éliminant ainsi le besoin de l’indicateur de proxy mentionné précédemment :

(venv) $ pip install boto3

Vous trouverez plus de détails sur les options de configuration disponibles dans le fichier pip config dans la documentation du projet.

Configuration d’un proxy pip avec des variables d’environnement

La définition de variables d’environnement système permet de s’assurer qu’un proxy est utilisé pour pip et toutes les autres requêtes HTTP sur un système. Pour ce faire, on utilise les variables d’environnement HTTP_PROXY et HTTPS_PROXY, qui sont souvent référencées par des logiciels comme pip comme proxy système à utiliser lors des requêtes HTTP.

Linux/macOS

Si vous utilisez un système d’exploitation Linux, mettez à jour le fichier /etc/environment, ou si vous utilisez macOS, mettez à jour le fichier .zshrc situé dans le répertoire personnel. Ensuite, mettez-le à jour avec les nouvelles entrées pour votre serveur proxy :

HTTP_PROXY=https://proxyserver:port
HTTPS_PROXY=https://proxyserver:port

Lorsque vous redémarrez vos sessions de terminal ou votre système, les variables d’environnement seront présentes.

Fenêtres

Sur un système Windows, vous pouvez définir des variables d’environnement à l’aide des commandes suivantes dans un terminal d’invite de commande :

setx HTTP_PROXY "https://proxyserver:port" /M
setx HTTPS_PROXY "https://proxyserver:port" /M

Redémarrez l’invite de commande pour que les modifications soient prises en compte.

Test de la configuration

Une fois que la configuration au niveau du système est activée, soit par le biais du fichier de configuration pip, soit par les variables d’environnement, vous devez tester que le proxy peut se connecter avec succès et recevoir des données via le proxy.

Linux/macOS

Sous Linux/macOS, utilisez la commande suivante :

$ python -m venv venv
$ source venve/scripts/activate

# for pip config file or environment variables
(venv) $ pip install requests

Si vous souhaitez remplacer ces paramètres par un proxy spécifique, vous pouvez utiliser les drapeaux du CLI :

# pip cli flag
(venv) $ pip install requests --proxy https://proxyserver:port

Dans cette commande, assurez-vous de mettre à jour https://proxyserver:port avec votre propre proxy.

Fenêtres

Sous Windows, utilisez la commande suivante :

> python -m venv venv
> .\venv\Scripts\Activate.bat
(venv) > pip install requests

Ces paramètres peuvent toujours être modifiés à l’aide des drapeaux de l’interface de programmation pip :

# pip cli flag
(venv) $ pip install requests --proxy https://proxyserver:port

Dépannage des proxy pip

Lorsque vous vous connectez à un proxy HTTP ou HTTPS avec pip, vous pouvez rencontrer les problèmes suivants, en particulier si vous utilisez des proxys privés ou des proxys HTTPS en raison de leurs fonctionnalités améliorées.

Problèmes d’authentification

Les problèmes d’authentification se manifestent généralement par une erreur 407 Proxy Authentication Required lorsque vous essayez de vous connecter au proxy avec pip. Cela indique que le proxy requiert un nom d’utilisateur et un mot de passe pour se connecter ou que vous avez fourni des informations d’identification erronées pour le proxy.

Questions relatives aux certificats

Lorsque vous vous connectez à un proxy HTTPS, vous pouvez recevoir un message d’erreur ” Certificate verify failed" de la part de Pip. Cela indique qu’il y a un problème avec le certificat fourni par le serveur proxy.

Si votre serveur proxy privé utilise un certificat auto-signé, vous pouvez obtenir cette erreur, et le certificat ne peut pas être vérifié auprès d’une autorité de certification. Vous pouvez utiliser l’option CLI --trusted-host pour vous connecter à certains domaines et ignorer les erreurs de certificat auto-signé.

Utilisation de pip avec des proxy rotatifs

Les proxys rotatifs permettent d’éviter les interdictions d’IP en changeant automatiquement d’adresse IP pour chaque requête. Cela permet d’imiter plusieurs utilisateurs et de contourner les restrictions.

Vous pouvez mettre cela en oeuvre en sélectionnant aléatoirement des proxies à partir d’une liste. Vous trouverez ci-dessous un script bash simple qui installe les paquets pip en passant par des proxys publics.

Créez le script bash suivant, appelé rotate-proxies.sh :

proxy_list=(
  'http://45.185.162.203:999'
  'http://177.23.176.58:8080'
  'http://83.143.24.66:80'
)

pip_packages=(
  'requests'
  'numpy'
  'pandas'
)

# Loop through packages and install them
for package in "${pip_packages[@]}"
do
  # Randomly select a proxy from the list
  proxy=${proxy_list[$RANDOM % ${#proxy_list[@]}]}
  echo -e  "\nInstalling $package with proxy $proxy"
  pip install --proxy $proxy $package
done

Une fois créé, vous pouvez exécuter le fichier pour télécharger les paquets pip et faire tourner un proxy aléatoire pour chaque commande pip. Voici un résumé de la sortie du script :

$ ./rotate-proxies.sh 

Installing requests with proxy http://177.23.176.58:8080
Collecting requests
  Downloading requests-2.32.3-py3-none-any.whl.metadata (4.6 kB)

….

Downloading urllib3-2.3.0-py3-none-any.whl (128 kB)
Installing collected packages: urllib3, idna, charset-normalizer, certifi, requests
Successfully installed certifi-2025.1.31 charset-normalizer-3.4.1 idna-3.10 requests-2.32.3 urllib3-2.3.0

Installing six with proxy http://45.185.162.203:999
Collecting numpy
 Downloading numpy-2.2.2-cp313-cp313-macosx_14_0_x86_64.whl.metadata (62 kB)

…

Installing collected packages: numpy
Successfully installed numpy-2.2.2

Installing pandas with proxy http://83.143.24.66:80
Collecting pandas
  Downloading pandas-2.2.3-cp313-cp313-macosx_10_13_x86_64.whl.metadata (89 kB)

….

Installing collected packages: pytz, tzdata, six, python-dateutil, pandas
Successfully installed pandas-2.2.3 python-dateutil-2.9.0.post0 pytz-2025.1 six-1.17.0 tzdata-2025.1

Avantages de l’utilisation de Proxies avec pip

Les proxys aident les développeurs à contourner les restrictions du réseau, à accéder aux ressources bloquées et à améliorer la vitesse de téléchargement des paquets. Les proxys privés offrent une mise en cache, des connexions plus rapides et une sécurité accrue en masquant votre identité.

Par rapport à un VPN, les proxys sont une alternative légère pour les requêtes par pipeline. Bien qu’un VPN chiffre l’ensemble du trafic Internet pour une plus grande confidentialité, il peut ralentir l’installation des paquets en raison d’une latence accrue. Les proxys offrent une solution plus rapide et plus efficace pour gérer les dépendances.

Erreurs courantes et meilleures pratiques

Lors de l’utilisation de proxys avec pip, il est important de faire attention aux erreurs les plus courantes, car elles peuvent entraîner des failles de sécurité. Des erreurs telles que des URL de proxy incorrectes ou des formats d’URL mal configurés (protocole HTTP ou HTTPS manquant ou incorrect) peuvent perturber les connexions aux référentiels de paquets.

Un problème de sécurité fréquent est le codage en dur des identifiants de proxy(par exemple les noms d’utilisateur et les mots de passe) dans les codes sources, les scripts ou les définitions de pipeline d’intégration continue et de livraison continue (CI/CD). Si ce code est redistribué, un accès non autorisé au proxy peut se produire. Si les informations d’identification sont compromises, le proxy peut être mal utilisé, ce qui entraîne une augmentation des coûts, voire être exploité par des cyberattaques.

Pour éviter ces erreurs, il est recommandé de sécuriser les identifiants de proxy en les stockant dans des variables d’environnement ou des fichiers de configuration cryptés plutôt que directement dans le code. En outre, vous devez tester la connectivité du proxy avant d’utiliser pip afin de garantir une configuration correcte et d’éviter les erreurs d’exécution. En utilisant des outils comme curl ou ping, vous pouvez vérifier les performances du proxy avant de le mettre en service. Cela permet une gestion plus fluide des paquets.

Utilisation de données de substitution (Bright Data Proxies)

Si vous êtes à la recherche d’un fournisseur de proxys de haute qualité et fonctionnels, jetez un coup d’œil à Bright Data. Il s’agit d’une solution de proxy qui fournit une gamme d’adresses IP, y compris des adresses résidentielles, des centres de données et des appareils mobiles. Elle fournit également des outils spécialisés pour la collecte de données et le web scraping, notamment des proxys rotatifs et l’API Web Unlocker.

Bright Data peut vous aider à créer facilement des proxys pour les besoins de votre projet. Pour vous montrer à quel point c’est facile, créons un proxy résidentiel privé que vous pouvez utiliser avec pip pour accéder aux paquets via une adresse IP différente.

Commencez par vous inscrire pour obtenir un compte Bright Data gratuit. Accédez ensuite au tableau de bord de l’utilisateur.

Dans le menu latéral, cliquez sur Proxies & Scraping:

Proxy de Bright Data

Une fois le formulaire chargé, configurez un nouveau proxy résidentiel. Si vous utilisez les paramètres par défaut, vous obtiendrez un proxy avec une adresse IP partagée utilisée par plusieurs utilisateurs de Bright Data :

Création d'une procuration résidentielle

Si vous ciblez une région spécifique, vous pouvez également spécifier le pays dans lequel vous souhaitez que l’adresse IP soit située.

Après la création, vous êtes redirigé vers un tableau de bord qui contient le point de terminaison et les détails d’authentification de votre proxy nouvellement créé. Prenez note du nom d’utilisateur, du mot de passe et de l’adresse du serveur :

Tableau de bord du proxy

À l’aide de ces valeurs, testez leur disponibilité en utilisant l’option --proxy:

$ pip install pandas \
    --trusted-host pypi.org \
    --trusted-host files.pythonhosted.org \
    --proxy https://username:[email protected]:33335

Comme le proxy Bright Data utilise un certificat auto-signé, vous pouvez utiliser l’indicateur d’hôte de confiance pour inscrire pypi.org et files.pythonhosted.org sur la liste blanche des domaines de confiance.

Conclusion

L’utilisation d’un proxy avec pip permet d’améliorer l’anonymat et le contrôle, en vous permettant de contourner les restrictions d’IP et le géoblocage. En fonction de vos besoins, vous pouvez choisir entre des proxys publics et privés.

Les proxys privés offrent des avantages, tels que la rotation des IP, une meilleure mise en cache, des vitesses plus élevées et une plus grande stabilité, mais leur coût dépend de la disponibilité des IP et de la situation géographique.

La configuration d’un proxy pour pip est simple, avec de nombreuses options telles que des drapeaux CLI, un fichier de configuration pip et des variables d’environnement. Cependant, les proxys publics ont des limites et, comme nous l’avons vu précédemment, ils ne sont pas idéaux pour les charges de travail importantes ou pour une utilisation en production. Pour une solution plus fiable, Bright Data propose des IP résidentielles et de centre de données, offrant des connexions rapides et stables et des outils avancés pour le web scraping et la collecte de données. Inscrivez-vous gratuitement pour commencer.

Aucune carte de crédit requise