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
?
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.
Modifiez la configuration et ajoutez des informations importantes telles que le domaine, le nom d'utilisateur, le mot de passe et le proxy parent.
Générer un mot de passe haché.
Windowscntlm –c cntlm.ini –H
Ubuntu/Linuxcntlm -v -H -c /etc/cntlm.conf
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.
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
Sous Windows, n'oubliez pas de définir
SET HTTPS_PROXY=<proxyHost>:<proxyPort>
ce que je devais mettre pour
pip install pep8
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.
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).
Cela a fonctionné pour moi (sous Windows via CMD):
pip install --proxy proxyserver:port requests
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
$ pip --proxy http://proxy-Host:proxy-port install packagename
C'est ce qui a fonctionné pour moi
Sous Windows 7:
pip install --proxy DOMAIN\user:password@proxyaddress:port package
c'est à dire.:
pip install --proxy BR\neo:[email protected]:8080 virtualenv
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"
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.
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
Dans Ubuntu 14.04 LTS
Sudo pip --proxy http://PROXYDOM:PROXYPORT install package
À votre santé
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:
server:port
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.
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
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%
Plus tard, Simplement pip install whatEver
devrait fonctionner.
Pour les utilisateurs de Windows: si vous souhaitez installer Flask-MongoAlchemy, utilisez le code suivant
pip install Flask-MongoAlchemy --proxy="http://example.com:port"**
Pourquoi ne pas le faire localement? Il est fort probable que vous puissiez télécharger à partir de la source https via votre navigateur.
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
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.
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.
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).
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.
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
C'est ce qui fonctionne pour moi:
pip --proxy proxy url:port command package
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.
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.
Définissez la variable d'environnement suivante: export PIP_PROXY=http://web-proxy.mydomain.com
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)