Utiliser pip derrière un proxy
j'essaie d'utiliser pip derrière un proxy au travail.
l'Une des réponses de ce post a suggéré d'utiliser CNTLM . Je l'ai installé et configuré par cet autre post , mais l'exécution 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 CNTLM par défaut) mais cela a soulevé Cannot fetch index base URL http://pypi.python.org/simple/
. Clairement, quelque chose de neuf avec le proxy.
est-ce que quelqu'un sait comment vérifier de façon plus définitive si CNTLM est bien installé, ou s'il y a une autre façon de contourner tout cela? 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 de ce que les justificatifs d'identité à mettre en. Ceux de cntlm.ini
?
24 réponses
pour configurer CNTLM pour windows, suivez cet" article . Pour Ubuntu, lire mon billet de blog .
Edit:
fondamentalement, pour utiliser CNTLM dans n'importe quelle plate-forme, vous devez configurer votre nom d'utilisateur et hashé mot de passe, avant d'utiliser http://127.0.0.1:3128
comme un proxy à votre proxy parent.
-
modifier la configuration et ajouter informations importantes comme nom de domaine, nom d'utilisateur, mot de passe et proxy parent.
-
génère un mot de passe.
Windows
cntlm –c cntlm.ini –H
Ubuntu / Linux
cntlm -v -H -c /etc/cntlm.conf
-
supprimez le mot de passe en clair de la configuration et remplacez-le par les mots de passe générés.
pour vérifier si elle fonctionne:
Windows cntlm –M http://www.google.com
Ubuntu / Linux sudo cntlm -M http://www.google.com/
pour des instructions plus détaillées, voir les liens ci-dessus.
mise à jour:
juste pour être complet, j'ai pu configurer et utiliser CNTLM dans Windows récemment. J'ai rencontré un problème pendant le processus de synchronisation de Kindle pour PC en raison de notre mandataire et l'installation et la configuration de CNTLM Pour Windows a corrigé ce problème pour moi. Voir mon article pour plus de détails.
avec Ubuntu Je ne pouvais pas obtenir l'option proxy pour fonctionner comme annoncé – donc la commande suivante a fait pas travailler:
sudo pip --proxy http://web-proxy.mydomain.com install somepackage
mais l'exportation de la variable d'environnement https_proxy
(notez sa https_proxy
et non http_proxy
) a fait l'affaire:
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 régler pour
pip install pep8
Je ne travaillais pas pour moi. J'ai utilisé https pour des travaux:
pip install --proxy=https://user@mydomain:port somepackage
afin de mettre à jour, ajouter-U.
vous pouvez continuer à utiliser pip over HTTPS en ajoutant le certificat root de votre société au cacert.fichier pem dans votre dossier site-packages/pip. Ensuite, 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 ça. Pas besoin d'utiliser des paquets tiers ou d'abandonner HTTPS (bien sûr, votre administrateur réseau peut toujours voir ce que vous faites).
cela a fonctionné pour moi (sur Windows via CMD):
pip install --proxy proxyserver:port requests
pour windows; définissez l'invite de commande de votre mandataire comme suit:
set HTTP_PROXY=domain\username:password@myproxy:myproxyport
exemple:
set http_proxy=IND\namit.kewat:xl123456@192.168.180.150:8880
sous notre Politique de sécurité Je ne peux pas utiliser https avec pypi, SSL-inspection rewrites certificats, il casse la sécurité intégrée de pip pour www.python.org. L'homme au milieu est l'administrateur du réseau.
Donc j'ai besoin d'utiliser simplement de l'adresse http . Pour ce faire, j'ai besoin de surcharger le proxy du 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"
téléphone comme hotspot mobile / clé USB
si j'ai beaucoup de mal à trouver un chemin à travers le mandataire de l'entreprise, je me connecte au web par mon téléphone (hotspot sans fil si j'ai wifi, un lien USB si non) et faire un rapide pip install
.
pourrait ne pas fonctionner pour toutes les configurations, mais devrait obtenir la plupart des gens par dans une pincée.
Sous Windows 7:
pip install --proxy DOMAIN\user:password@proxyaddress:port package
c'est à dire:
pip install --proxy BR\neo:p4ssw0rd@myproxyrocks.com.br:8080 virtualenv
in Ubuntu 14.04 LTS
sudo pip --proxy http://PROXYDOM:PROXYPORT install package
Cheers
$ pip --proxy http://proxy-host:proxy-port install packagename
c'est Ce qui a fonctionné pour moi sur
j'ai eu le même problème : derrière un proxy d'entreprise avec auth au travail, je ne pouvais pas avoir de travail pip, aussi bien que le texte Sublime 2 (bien, il a fonctionné 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 cntlm proxy. Il était très simple de configurer:
- Modifier cntlm.ini
- Modifier "nom d'utilisateur", "Domaine", "Mot de passe" champs
- ajouter une ligne" Proxy", avec vos paramètres de proxy :
server:port
- assurez-vous que la ligne "NoProxy" intègre "localhost" (comme par défaut)
- noter le port par défaut: 3128
- Enregistrer et c'est tout.
pour tester ce qui fonctionne, il suffit de lancer un nouvel outil en ligne de commande, et essayer:
pip install django --proxy=localhost:3128
ça a marché pour moi. Espérons que cela vous aidera.
si vous voulez mettre à jour 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
pour les utilisateurs de windows: si vous voulez installer Flask-MongoAlchemy puis utiliser le code suivant
pip install Flask-MongoAlchemy --proxy="http://example.com:port"**
définit la variable d'environnement dans les paramètres système avancés. Dans l'invite de Commande, il doit se comporter comme ceci :
C:\Windows\system32 > echo % http_proxy %
http://username:passowrd@proxy:port
C:\Windows\system32 > echo %https_proxy %
Plus Tard , Tout Simplement
pip install whatEver
devrait marcher.
ouvrez L'invite de commande Windows.
configurer le proxy de variables d'environnement.
set http_proxy=http://user:password@proxy_ip:port
set https_proxy=https://user:password@proxy_ip:port
installe les paquets Python en utilisant proxy dans la même invite de commande Windows.
pip install --proxy="user:password@proxy_ip:port" package_name
chez CentOS (en fait je pense que toutes les distributions linux sont similaires) run
env|grep http_proxy
et
env|grep https_proxy
vérifiez quelle est la sortie de ces commandes (elles doivent contenir vos adresses proxy).
si les sorties sont vides ou ont des valeurs incorrectes, les modifier, par exemple:
export http_proxy=http://10.1.1.1:8080
export https_proxy=http://10.1.1.1:8080
essayez maintenant de récupérer 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é l'affaire quand ça n'a pas marché. Pour certains systèmes, vous devez être root (sudo n'est pas assez).
attention, il y a quelque chose de très mauvais avec la commande "pip search". La commande search n'utilise pas le paramètre proxy quelle que soit la façon dont il est transmis.
j'essayais de comprendre le problème en essayant seulement la commande "recherche", et j'ai trouvé ce post avec une explication détaillée à propos de ce bug: https://github.com/pypa/pip/issues/1104
je peux confirmer que le bug reste avec pip 1.5.6 sur Debian 8 avec python 2.7.9. La commande "pip install" fonctionne comme un charme.
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 mandataire est le port SSH transmis à localhost:3128
).
j'ai dû configurer les proxies http et https pour que cela fonctionne:
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 pip
l 'erreur ne vous dit pas.
Je ne suis pas non plus un expert en la matière, mais je l'ai fait fonctionner en mettant la variable all_proxy
dans le ~/.dossier bashrc. Pour ouvrir le fichier ~/.bashrc
et l'éditer à partir d'un terminal exécuter les commandes suivantes,
gedit ~/.bashrc &
ajouter ce qui suit à la fin du fichier,
export all_proxy="http://x.y.z.w:port"
puis soit ouvrir un nouveau terminal ou exécuter le suivi dans le même terminal,
source ~/.bashrc
just setting http_proxy
et https_proxy
variables ne sont pas assez pour un usage simple pip install somepackage
. Bien que d'une certaine façon sudo -E pip install somepackage
fonctionne, mais cela m'a donné un certain problème dans le cas où j'utilise une installation locale D'Anaconda dans le dossier de mes utilisateurs.
P.S. - J'utilise Ubuntu 16.04.
pourquoi ne pas le faire localement? Très probablement vous êtes en mesure de télécharger à partir de https source par le biais de votre navigateur
- Téléchargez votre fichier de module (mysql-connector-python-2.0.3.zip / gz... etc.)
-
extraire et aller le dir extrait où setup.py est situé et appelez:
C:\mysql-connector-python-2.0.3>python.exe setup.py install
C'est ce qui fonctionne pour moi:
pip --proxy proxy url:port command package
j'ai résolu le problème avec PIP dans Windows en utilisant "Fiddler" ( https://www.telerik.com/download/fiddler ). Après le téléchargement et l'installation, faites ce qui suit:
"Règles" => cliquez sur "Authentifier"
exemple: pip install virtualenv-proxy 127.0.0.1: 8888
il suffit d'ouvrir votre invite et d'utiliser.
https://github.com/pypa/pip/issues/1182 Rechercher" voltagex "(commenté le 22 mai 2015)