web-dev-qa-db-fra.com

Utiliser pip derrière un proxy

J'essaie d'utiliser pip derrière un proxy au travail.

Une des réponses de ce post a suggéré d'utiliser CNTLM . Je l'ai installé et configuré par cet autre article , mais l'exécution de cntlm.exe -c cntlm.ini -I -M http://google.com a donné l'erreur Connection to proxy failed, bailing out.

J'ai aussi essayé pip install -–proxy=user:pass@localhost:3128 (le port par défaut de CNTLM) mais cela a soulevé Cannot fetch index base URL http://pypi.python.org/simple/. Clairement, quelque chose se passe avec le proxy.

Est-ce que quelqu'un sait comment vérifier plus définitivement si CNTLM est correctement configuré ou s'il existe une autre solution? Je sais que vous pouvez également définir la variable d'environnement http_proxy comme décrit ici mais je ne suis pas sûr des informations d'identification à saisir. Celles de cntlm.ini?

235
Rob

Pour configurer CNTLM pour Windows, suivez cet article . Pour Ubuntu, lisez mon blog

Modifier:

Fondamentalement, pour utiliser CNTLM sur n’importe quelle plate-forme, vous devez configurer votre nom d’utilisateur et votre hashed password, avant d’utiliser http://127.0.0.1:3128 en tant que proxy de votre proxy parent.

  1. Modifiez la configuration et ajoutez des informations importantes telles que le domaine, le nom d'utilisateur, le mot de passe et le proxy parent. 

  2. Générer un mot de passe haché.

    Windowscntlm –c cntlm.ini –H

    Ubuntu/Linuxcntlm -v -H -c /etc/cntlm.conf

  3. Supprimez le mot de passe en texte brut de la configuration et remplacez-les par les mots de passe générés.

Pour vérifier si fonctionne:

Windowscntlm –M http://www.google.com

Ubuntu/LinuxSudo cntlm -M http://www.google.com/

Pour des instructions plus détaillées, voir les liens ci-dessus.

Mettre à jour: 

Juste pour être complet, j’ai récemment pu configurer et utiliser CNTLM dans Windows. J'ai rencontré un problème lors du processus de synchronisation de Kindle pour PC en raison de notre proxy et de l'installation et de la configuration de CNTLM pour Windows qui a résolu le problème. Reportez-vous à mon article pour plus de détails. 

57
Annie Lagang

Avec Ubuntu, je ne pouvais pas utiliser l’option proxy pour fonctionner comme annoncé - la commande suivante a donc pas work:

Sudo pip --proxy http://web-proxy.mydomain.com install somepackage

Mais exporter la variable d’environnement https_proxy (notez que https_proxy et non http_proxy) a été efficace:

export https_proxy=http://web-proxy.mydomain.com

puis

Sudo -E pip install somepackage
236
Sameer Vaidya

Sous Windows, n'oubliez pas de définir

SET HTTPS_PROXY=<proxyHost>:<proxyPort>

ce que je devais mettre pour

pip install pep8
85
k7sleeper

Je ne travaillais pas pour moi. J'ai utilisé https pour les travaux: 

pip install --proxy=https://user@mydomain:port somepackage

Pour mettre à jour, ajoutez -U.

48
Hugo Salvador

Vous pouvez continuer à utiliser pip sur HTTPS en ajoutant le certificat racine de votre société au fichier cacert.pem de votre dossier site-packages/pip. Puis configurez pip pour utiliser votre proxy en ajoutant les lignes suivantes à ~/pip/pip.conf (ou ~ ~ pip\pip.ini si vous êtes sous Windows):

[global]
proxy = [user:passwd@]proxy.server:port

C'est tout. Inutile d'utiliser des packages tiers ou d'abandonner le protocole HTTPS (bien entendu, votre administrateur réseau peut toujours voir ce que vous faites).

37
djmoch

Cela a fonctionné pour moi (sous Windows via CMD):

pip install --proxy proxyserver:port requests
26
damian1baran

pour les fenêtres; définir votre proxy dans l'invite de commande comme
set HTTP_PROXY=domain\username:password@myproxy:myproxyport

exemple: 
set http_proxy=IND\namit.kewat:[email protected]:8880

25
namit
$ pip --proxy http://proxy-Host:proxy-port install packagename

C'est ce qui a fonctionné pour moi 

15
Anand

Sous Windows 7:

pip install --proxy DOMAIN\user:password@proxyaddress:port package

c'est à dire.:

pip install --proxy BR\neo:[email protected]:8080 virtualenv
12
Daniel

En vertu de notre politique de sécurité je ne peux pas utiliser https avec pypi, l'inspection SSL réécrit les certificats, elle casse la sécurité intégrée de pip pour www.python.org. L'homme au milieu est l'administrateur du réseau.

Donc, je dois utiliser http pur. Pour ce faire, je dois remplacer le proxy système ainsi que le pypi par défaut:

bin/pip install --proxy=squidproxy:3128 -i http://www.python.org/pypi --upgrade "SQLAlchemy>=0.7.10"
12
bbaassssiiee

Téléphone comme point d'accès mobile/modem USB

Si j'ai beaucoup de difficulté à trouver un moyen de passer par le proxy de l'entreprise, je me connecte au Web via mon téléphone (point d'accès sans fil si j'ai le wifi, câble USB si ce n'est pas le cas) et fais un rapide pip install

Peut ne pas fonctionner pour toutes les configurations, mais devrait permettre à la plupart des gens de se débrouiller.

11
Tommy O'Dell

Ouvrez l'invite de commande Windows.

Définissez les variables d'environnement proxy.

set http_proxy=http://user:password@proxy_ip:port
set https_proxy=https://user:password@proxy_ip:port

Installez les packages Python en utilisant un proxy dans la même invite de commande Windows.

pip install --proxy="user:password@proxy_ip:port" package_name
8
Jyoti Yadav

Dans Ubuntu 14.04 LTS

   Sudo pip --proxy http://PROXYDOM:PROXYPORT install package

À votre santé

7
Rene Cejas Bolecek

J'ai eu le même problème: derrière un proxy d'entreprise avec auth au travail, je ne pouvais pas utiliser pip, ainsi que Sublime Text 2 (enfin, cela fonctionnait avec la configuration personnalisée de mes paramètres de proxy) . Pour pip (et Je vais essayer ça sur git), je l'ai résolu en installant le proxy cntlm . C'était très simple à configurer:

  1. Éditer cntlm.ini
  2. Éditer les champs "Nom d'utilisateur", "Domaine", "Mot de passe"
  3. Ajoutez une ligne "Proxy", avec vos paramètres de proxy: server:port
  4. Assurez-vous que la ligne "NoProxy" intègre "localhost" (comme ça par défaut)
  5. Notez le port par défaut: 3128
  6. Enregistrer et c'est tout.

Pour tester cela fonctionne, lancez simplement un nouvel outil de ligne de commande et essayez:

pip install Django --proxy=localhost:3128

Cela a fonctionné pour moi… .. espérons que cela vous aidera.

6
Johan Chouquet

si vous souhaitez mettre à niveau pip par proxy, vous pouvez utiliser (par exemple sous Windows):

python -m pip --proxy http://proxy_user:proxy_password@proxy_hostname:proxy_port insta
ll --upgrade pip
5
Nikolay Baranenko

Configurez la variable invironment dans les paramètres système avancés .

C:\Windows\system32> echo% http_proxy%

http: // nom d'utilisateur: passowrd @ proxy: port

C:\Windows\system32> echo% https_proxy%

http: // nom d'utilisateur: mot de passe @ proxy: port

Plus tard, Simplement pip install whatEver devrait fonctionner.

5
mkkhedawat

Pour les utilisateurs de Windows: si vous souhaitez installer Flask-MongoAlchemy, utilisez le code suivant

pip install Flask-MongoAlchemy --proxy="http://example.com:port"**
4
Nitin Panwar

Pourquoi ne pas le faire localement? Il est fort probable que vous puissiez télécharger à partir de la source https via votre navigateur.

  1. Téléchargez votre fichier de module (mysql-connector-python-2.0.3.Zip /gz...etc). 
  2. Extrayez-le et allez dans le répertoire extrait où se trouve setup.py et appelez:

    C:\mysql-connector-python-2.0.3>python.exe setup.py install
    
2
Sendi_t

Attention, il y a quelque chose de très grave avec la commande "pip search" . La commande de recherche n'utilise pas le paramètre de proxy, quel que soit le mode de transmission.

J'essayais de comprendre le problème en essayant seulement la commande "search", et j'ai trouvé ce post avec une explication détaillée sur ce bogue: https://github.com/pypa/pip/issues/1104

Je peux confirmer que le bogue persiste avec le pip 1.5.6 sous Debian 8 avec python 2.7.9 . La commande "pip install" fonctionne à merveille.

2
Pivert

J'ai eu l'erreur:

chris@green:~$ Sudo http_proxy=http://localhost:3128 pip install Django==1.8.8 
Downloading/unpacking Django==1.8.8
  Cannot fetch index base URL http://pypi.python.org/simple/
  Could not find any downloads that satisfy the requirement Django==1.8.8
No distributions at all found for Django==1.8.8
Storing complete log in /home/chris/.pip/pip.log

(Le port du serveur proxy est le port ssh transféré à localhost:3128).

Pour le faire fonctionner, je devais configurer les proxies http et https:

chris@green:~$ Sudo http_proxy=http://localhost:3128 https_proxy=http://localhost:3128 pip install Django==1.8.8
Downloading/unpacking Django==1.8.8
  Downloading Django-1.8.8.tar.gz (7.3Mb): 7.3Mb downloaded
  Running setup.py Egg_info for package Django

    warning: no previously-included files matching '__pycache__' found under directory '*'
    warning: no previously-included files matching '*.py[co]' found under directory '*'
Installing collected packages: Django
  Running setup.py install for Django

    warning: no previously-included files matching '__pycache__' found under directory '*'
    warning: no previously-included files matching '*.py[co]' found under directory '*'
    changing mode of build/scripts-2.7/Django-admin.py from 644 to 755
    changing mode of /usr/local/bin/Django-admin.py to 755
    Installing Django-admin script to /usr/local/bin
Successfully installed Django
Cleaning up...

comme http://pypi.python.org/simple/ redirige vers https://pypi.python.org/simple mais l'erreur pip ne vous dit pas.

2
fadedbee

Chez CentOS (en fait, je pense que toutes les distributions linux sont similaires),

env|grep http_proxy

et

env|grep https_proxy

vérifiez quelle est la sortie de ces commandes (elles devraient contenir vos adresses proxy).

Si les sorties sont vides ou ont des valeurs incorrectes, modifiez-les, par exemple:

export http_proxy=http://10.1.1.1:8080
export https_proxy=http://10.1.1.1:8080

Essayez maintenant d’extraire et d’installer certains paquets en utilisant pip:

pip --proxy http://10.1.1.1:8080 install robotframework

et en fait je n'ai jamais rencontré le cas où cela n'a pas fonctionné. Pour certains systèmes, vous devez être une racine (Sudo ne suffit pas).

2
Paweł Wojtal

Je ne suis pas non plus un expert en la matière, mais je l'ai fait fonctionner en définissant la variable all_proxy dans le fichier ~/.bashrc. Pour ouvrir le fichier ~/.bashrc et le modifier depuis un terminal, exécutez les commandes suivantes,

gedit ~/.bashrc &

Ajouter ce qui suit à la fin du fichier,

export all_proxy="http://x.y.z.w:port"

Ensuite, ouvrez un nouveau terminal ou exécutez-le dans le même terminal,

source ~/.bashrc

Le simple fait de définir les variables http_proxy et https_proxy ne suffit pas pour une utilisation simple pip install somepackage. Sudo -E pip install somepackage fonctionne, mais cela m’a posé un problème si j’utilise une installation locale d’Anaconda dans le dossier de mes utilisateurs.

P.S. - J'utilise Ubuntu 16.04.

2
bytestorm

Si vous utilisez Linux, en tant que root:

env https_proxy=http://$web_proxy_ip:$web_proxy_port pip install something

Lorsque vous utilisez env, la variable https_proxy est exportée pour l'exécution en cours de la commande install pip.

$ web_proxy_ip est le nom d'hôte ou l'adresse IP de votre proxy $ web_proxy_port est le port 

1
Adail Junior

C'est ce qui fonctionne pour moi: 

pip --proxy proxy url:port command package
0
Brock Vond

Je pourrais y arriver en exécutant:

pip install --proxy=http://user:[email protected]:3128 package==version

J'utilise Python 3.7.3 dans un proxy corporatif.

0
ncastro

pour Windows, allez à C: /ProgramData/pip/pip.ini et définissez

[global]

proxy = http: // YouKnowTheRest

avec vos détails de procuration. Ceci configure en permanence le proxy pour pip.

0
Kvothan

Définissez la variable d'environnement suivante: export PIP_PROXY=http://web-proxy.mydomain.com

0
FTM

J'ai résolu le problème avec PIP dans Windows en utilisant "Fiddler" ( https://www.telerik.com/download/fiddler ). Après avoir téléchargé et installé, procédez comme suit:

"Règles" => cliquez sur "Authentifier automatiquement"

Exemple: pip install virtualenv -proxy 127.0.0.1:8888

Ouvrez simplement votre invite et utilisez-la.

https://github.com/pypa/pip/issues/1182 Recherche de "voltagex" (commenté le 22 mai 2015)

0
Lucius Matos