在代理后面使用pip

我正在尝试在工作中使用代理。

从这个post的答案之一build议使用CNTLM 。 我安装和configuration它每个这个职位 ,但运行cntlm.exe -c cntlm.ini -I -M http://google.com给错误Connection to proxy failed, bailing out

我也尝试过pip install -–proxy=user:pass@localhost:3128 (默认的CNTLM端口),但是引发了Cannot fetch index base URL http://pypi.python.org/simple/ 。 很明显,代理服务器有什么问题。

有谁知道如何更明确地检查CNTLM是否设置正确,或者如果还有其他方法呢? 我知道你也可以像这里描述的那样设置http_proxy环境variables,但是我不确定要input什么凭证。来自cntlm.ini

要为窗口设置CNTLM,请按照这篇文章 。 对于Ubuntu,阅读我的博客文章 。

编辑:

基本上,要在任何平台上使用CNTLM,在使用http://127.0.0.1:3128作为父代理的代理之前,需要设置用户名和密码。

  1. 编辑configuration并添加域,用户名,密码和父代理等重要信息。

  2. 生成哈希密码。

    Windows cntlm –c cntlm.ini –H

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

  3. 从configuration中删除明文密码,并将其replace为生成的密码。

检查是否工作:

Windows cntlm –M http://www.google.com

Ubuntu / Linux sudo cntlm -M http://www.google.com/

有关更详细的说明,请参阅上面的链接。

更新:

为了完整起见,我最近能够在Windows中configuration和使用CNTLM。 我在Kindle的PC同步过程中遇到了一个问题,因为我们的代理和安装和configurationCNTLM for Windows修复了这个问题。 请参阅我的文章了解更多详情。

随着Ubuntu我无法得到代理选项工作广告 – 所以下面的命令不起作用:

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

但是导出https_proxy环境variables(注意它的https_proxy不是http_proxy )做了一个小技巧:

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

然后

 sudo -E pip install somepackage 

在Windows下不要忘记设置

 SET HTTPS_PROXY=<proxyHost>:<proxyPort> 

我需要设置

 pip install pep8 

您可以通过将公司的根证书添加到site-packages / pip文件夹中的cacert.pem文件,继续使用HTTPS上的pip。 然后configurationpip来使用你的代理,在〜/ pip / pip.conf中join以下几行(如果你在Windows上,则加上〜\ pip \ pip.ini):

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

而已。 不需要使用第三方软件包或放弃HTTPS(当然,你的networkingpipe理员仍然可以看到你在做什么)。

用于窗户; 在命令提示符中设置您的代理
set HTTP_PROXY=domain\username:password@myproxy:myproxyport

例:
set http_proxy=IND\namit.kewat:xl123456@192.168.180.150:8880

我不是在为我工作。 我使用https作品:

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

为了更新,添加-U。

这工作对我来说(在Windows上通过CMD):

 pip install --proxy proxyserver:port requests 

根据我们的安全政策, 我可能不会使用https与pypi,SSL检查重写证书,它打破了www.python.org的点的内置安全性。 中间的人是networkingpipe理员。

所以我需要使用普通的http 。 为此,我需要覆盖系统代理以及默认的pypi:

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

手机作为移动热点/ USB共享

如果我在通过公司代理寻找方法时遇到了很多麻烦,那么我可以通过手机(无线热点,如果我有wifi,如果没有USB系绳)连接到networking,并快速pip install

可能不适用于所有的设置,但应该让大多数人受到掐。

在Windows 7中:

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

即:

 pip install --proxy BR\neo:p4ssw0rd@myproxyrocks.com.br:8080 virtualenv 

在Ubuntu 14.04 LTS

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

干杯

我有同样的问题:在一个公司代理与身份validation工作后,我不能有点工作,以及崇高文本2(以及,它的自定义设置我的代理设置)。 对于点(我会尝试在git上),我解决了它安装cntlm代理。 configuration非常简单:

  1. 编辑cntlm.ini
  2. 编辑“用户名”,“域名”,“密码”字段
  3. 添加一个“代理”行,与您的代理设置: server:port
  4. 确保“NoProxy”这一行集成了“localhost”(如默认)
  5. 请注意默认端口:3128
  6. 保存就是这样。

要testing这个工作,只需启动一个新的命令行工具,然后尝试:

 pip install django --proxy=localhost:3128 

这对我有效。 希望这会帮助你。

对于Windows用户:如果你想安装Flask-MongoAlchemy,那么使用下面的代码

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

在“高级系统设置”中设置环境variables。 在命令提示符下,它的行为应该是这样的:

C:\ Windows \ system32> echo%http_proxy%

HTTP://用户名:@ passowrd代理:端口

C:\ Windows \ system32> echo%https_proxy%

HTTP://用户名:密码@代理:端口

后来,只需点击pip install whatEver应该工作。

在CentOS(实际上我认为所有的Linux发行版是相似的)运行

 env|grep http_proxy 

 env|grep https_proxy 

检查这些命令的输出是什么(它们应该包含你的代理地址)。

如果输出为空或者值不正确,请修改它们,例如:

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

现在尝试使用pip获取并安装一些软件包:

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

实际上我没有遇到过这种情况。 对于一些系统,你需要成为一个根(sudo是不够的)。

我得到了错误:

 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 

(代理服务器的端口是ssh端口转发到localhost:3128 )。

我必须设置http和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... 

作为http://pypi.python.org/simple/redirect到https://pypi.python.org/simplepip的错误不告诉你。

我也没有在这方面的专家,但我通过设置〜/ .bashrc文件中的all_proxyvariables的工作。 要打开~/.bashrc文件并从terminal运行下面​​的命令进行编辑,

 gedit ~/.bashrc & 

在文件末尾添加以下内容,

 export all_proxy="http://xyzw:port" 

然后或者打开一个新的terminal或者在同一个terminal中运行,

 source ~/.bashrc 

仅仅设置http_proxyhttps_proxyvariables对于简单的使用pip install somepackage是不够的。 虽然以某种方式sudo -E pip install somepackage作品,但是这给了我一些问题,以防我在我的用户的文件夹中使用Anaconda的本地安装。

PS – 我正在使用Ubuntu 16.04。

如何在本地做? 很可能您可以通过浏览器从https源下载

  1. 下载你的模块文件(mysql-connector-python-2.0.3.zip / gz …等)。
  2. 解压缩并findsetup.py所在的提取目录,然后调用:

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

警告,“点search”命令有一些非常不好的地方。 search命令不使用代理设置,不pipe传递的方式如何。

我试图找出问题只尝试“search”命令,并find这个post详细解释有关该错误: https : //github.com/pypa/pip/issues/1104

我可以用Python 2.7.9确认Debian 8上的pip 1.5.6的bug。 “点子安装”命令就像一个魅力。

这对我有用:

 pip --proxy proxy url:port command package