我正在尝试在工作中使用代理背后的pip .
this post的答案之一建议使用CNTLM . 我按this other post安装并配置了它,但是运行 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
环境变量,如here所述,但我不确定要放入什么凭证 . 来自 cntlm.ini
的那些?
26 回答
用于窗户;在命令提示符下设置您的代理
set HTTP_PROXY=domain\username:password@myproxy:myproxyport
例:
set http_proxy=IND\namit.kewat:xl123456@192.168.180.150:8880
根据我们的安全策略 I may not use https 与pypi,SSL检查重写证书,它打破了www.python.org的内置pip安全性 . 中间人是网络管理员 .
所以 I need to use plain http . 为此,我需要覆盖系统代理以及默认的pypi:
手机作为移动热点/ USB网络共享
如果我在通过公司代理寻找方法时遇到很多困难,我会通过手机连接到网络(如果我有无线热点,如果没有wifi连接线,则可以快速连接到网络)并快速
pip install
.可能不适用于所有设置,但应该让大多数人在紧要关头 .
在Windows 7中:
即:
这对我有用
在Ubuntu 14.04 LTS中
干杯
要为Windows设置CNTLM,请按照article进行操作 . 对于Ubuntu,请阅读my blog post .
Edit:
基本上,要在任何平台中使用CNTLM,您需要设置用户名和散列密码,然后才能使用
http://127.0.0.1:3128
作为父代理的代理 .编辑配置并添加域,用户名,密码和父代理等重要信息 .
生成哈希密码 .
Windows
cntlm –c cntlm.ini –H
Ubuntu/Linux
cntlm -v -H -c /etc/cntlm.conf
检查是否有效:
Windows
cntlm –M http://www.google.com
Ubuntu/Linux
sudo cntlm -M http://www.google.com/
有关更详细的说明,请参阅上面的链接 .
Update:
为了完整起见,我最近能够在Windows中配置和使用CNTLM . 我在Kindle for PC的同步过程中遇到了一个问题,因为我们的代理和安装和配置CNTLM for Windows修复了这个问题 . 有关详细信息,请参阅my article .
使用Ubuntu我无法使代理选项像宣传的那样工作 - 所以跟随命令 not 工作:
但是导出
https_proxy
环境变量(注意它的https_proxy
而不是http_proxy
)就可以了:然后
在Windows下不要忘记设置
我需要设定什么
我没跟我工作 . 我使用https作品:
要进行更新,请添加-U .
您可以通过将公司的根证书添加到site-packages / pip文件夹中的cacert.pem文件来继续使用pip over HTTPS . 然后通过在〜/ pip / pip.conf中添加以下行来配置pip以使用您的代理(如果您在Windows上,则添加〜\ pip \ pip.ini):
而已 . 无需使用第三方软件包或放弃HTTPS(当然,您的网络管理员仍然可以看到您正在做的事情) .
这对我有用(在Windows上通过CMD):
我有同样的问题:在工作中使用auth的公司代理背后,我没有pip工作,以及Sublime Text 2(嗯,它适用于我的代理设置的自定义设置) . 对于pip(我将在git上尝试),我解决了它安装cntlm代理 . 配置非常简单:
编辑cntlm.ini
编辑"Username","Domain","Password"个字段
使用您的代理设置添加"Proxy"行:
server:port
确保"NoProxy"行整合"localhost"(默认情况下为此)
注意默认端口:3128
保存,就是这样 .
要测试它是否有效,只需启动一个新的命令行工具,然后尝试:
这对我有用 . 希望这会帮助你 .
打开Windows命令提示符 .
设置代理环境变量 .
在同一Windows命令提示符下使用代理安装Python包 .
在“高级系统设置”中设置环境变量 . 在命令提示符中,它应该像这样:
之后,简单的
pip install whatEver
应该可行 .如果你想通过代理升级pip,可以使用(例如在Windows中):
对于Windows用户:如果要安装Flask-MongoAlchemy,请使用以下代码
在CentOS(实际上我认为所有Linux发行版都相似)运行
和
检查这些命令的输出是什么(它们应该包含您的代理地址) .
如果输出是空的或具有不正确的值,修改它们,例如:
现在尝试使用pip获取并安装一些包:
实际上,当它不起作用时,我从未遇到过这种情况 . 对于某些系统,您需要成为root(sudo是不够的) .
警告,“pip search”命令有一些非常糟糕的事情 . 无论传递方式如何,搜索命令都不使用代理设置 .
我试图找出问题只尝试"search"命令,并发现这篇文章详细解释了该错误:https://github.com/pypa/pip/issues/1104
我可以使用python 2.7.9在Debian 8上用pip 1.5.6确认bug . “pip install”命令就像一个魅力 .
我收到了错误:
(代理服务器的端口是转发到
localhost:3128
的ssh端口) .我必须设置http和https代理才能使其工作:
因为
http://pypi.python.org/simple/
重定向到https://pypi.python.org/simple
但是pip
的错误并没有告诉你 .我也不是这方面的专家,但我通过在〜/ .bashrc文件中设置
all_proxy
变量来实现它 . 要打开~/.bashrc
文件并从终端运行以下命令进行编辑,在文件末尾添加以下内容,
然后打开一个新终端或在同一终端上运行以下,
仅设置
http_proxy
和https_proxy
变量不足以简单使用pip install somepackage
. 虽然莫名其妙sudo -E pip install somepackage
工作,但这给我一些问题,以防我在我的用户的文件夹中使用本地安装的Anaconda .附: - 我正在使用Ubuntu 16.04 .
在本地做这件事怎么样?您很可能通过浏览器从https源下载
下载您的模块文件(mysql-connector-python-2.0.3.zip / gz ...等) .
解压缩并运行setup.py所在的提取目录并调用:
这对我有用:
我使用"Fiddler"(https://www.telerik.com/download/fiddler)在Windows中解决了PIP的问题 . 下载并安装后,请执行以下操作:
“规则”=>点击“自动验证”
示例:pip install virtualenv -proxy 127.0.0.1:8888
只需打开提示并使用即可 .
https://github.com/pypa/pip/issues/1182搜索"voltagex"(2015年5月22日评论)
对于Windows转到C:/ProgramData/pip/pip.ini,然后设置
[全球]
proxy = http://YouKnowTheRest
与您的代理详细信息 . 这会永久配置pip的代理 .
设置以下环境变量:
export PIP_PROXY=http://web-proxy.mydomain.com