106 votes

Comment utiliser pip sous Windows derrière un proxy d'authentification ?

Mon ordinateur fonctionne sous Windows derrière un proxy sur un serveur Windows (utilisant active directory), et je n'arrive pas à comprendre comment le traverser avec pip (en python3). J'ai essayé d'utiliser --proxy mais il n'y a toujours pas de délai d'attente. J'ai également essayé de définir un délai d'attente long (60s), mais cela n'a fait aucune différence. Mes paramètres de proxy sont corrects, et je les ai comparés à ceux que j'utilise avec succès dans TortoiseHG pour m'en assurer.

Y a-t-il d'autres astuces que quelqu'un connaît et que je puisse essayer, ou y a-t-il une limitation dans le système d'information ? pip en ce qui concerne les proxys Windows ?

Mise à jour : Mes tentatives infructueuses ont consisté à faire des recherches sur pypi. Je viens d'essayer d'installer quelque chose et ça a marché. La recherche échoue toujours cependant. Est-ce que cela indique un bogue dans pip ou fonctionnent-ils différemment ?

3voto

Philipp Points 73

Même problème sous windows10 et les solutions ci-dessus ne fonctionnent pas pour moi.

utiliser un outil de console d'émulation comme cygwin et de le faire à la manière linux par défaut :

export http_proxy=<proxy>
export https_proxy=<proxy>
pip install <package>

et tout fonctionne bien.

2voto

J'ai rencontré le même problème dans un environnement Windows distant. J'ai essayé de nombreuses solutions trouvées ici ou sur d'autres posts similaires mais rien n'a fonctionné. Finalement, la solution a été assez simple. Je devais définir NO_PROXY avec cmd :

set NO_PROXY="<domain>\<username>:<password>@<host>:<port>"
pip install <packagename>

Vous devez utiliser des guillemets doubles et définir NO_PROXY en majuscules. Vous pouvez également ajouter NO_PROXY en tant que variable d'environnement au lieu de la définir à chaque fois que vous utilisez la console.

J'espère que cela vous aidera si l'une des autres solutions proposées ici fonctionne.

1voto

cincypiper Points 11

Vous pouvez également rencontrer des problèmes avec les certificats de votre proxy. Vous trouverez ici de nombreuses réponses sur la manière de récupérer le certificat de votre proxy.

Sur un hôte Windows, pour permettre à pip d'effacer votre proxy, vous pouvez définir une variable d'environnement telle que :

PIP_CERT=C:\path\to\certificate\file\in\pem\form\myproxycert.pem

Vous pouvez également utiliser la fonction --cert argument à PIP avec le même résultat.

1voto

Alex B Points 639

Installer le cntlm : Cntlm : Proxy d'authentification NTLM rapide en C

Config cntlm.ini :

Nom d'utilisateur ob66759

Domaine NAM

Mot de passe secret

Proxy proxy1.net:8080

Proxy proxy2.net:8080

NoProxy localhost, 127.0.0.*, 10.*, 192.168.*

Écouter 3128

Autoriser 127.0.0.1

votre IP

Autoriser 10.106.18.138

le démarrer :

cntlm -v -c cntlm.ini

Maintenant dans cmd.exe :

pip install --upgrade pip --proxy 127.0.0.1:3128

Collecting pip
  Downloading https://files.pythonhosted.
44c8a6e917c1820365cbebcb6a8974d1cd045ab4/

    100% |███████████████████████████████
Installing collected packages: pip
  Found existing installation: pip 9.0.1
    Uninstalling pip-9.0.1:
      Successfully uninstalled pip-9.0.1

Successfully installed pip-10.0.1

fonctionne !

Vous pouvez également masquer le mot de passe : https://stormpoopersmith.com/2012/03/20/using-applications-behind-a-corporate-proxy/

1voto

GermanSniper Points 67

Essayer d'encoder la barre oblique inverse entre le domaine et l'utilisateur

pip --proxy https://domain%5Cuser:password@proxy:port install -r requirements.txt

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X