在代理后面使用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
作为父代理的代理之前,需要设置用户名和密码。
-
编辑configuration并添加域,用户名,密码和父代理等重要信息。
-
生成哈希密码。
Windows
cntlm –c cntlm.ini –H
Ubuntu / Linux
cntlm -v -H -c /etc/cntlm.conf
-
从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非常简单:
- 编辑cntlm.ini
- 编辑“用户名”,“域名”,“密码”字段
- 添加一个“代理”行,与您的代理设置:
server:port
- 确保“NoProxy”这一行集成了“localhost”(如默认)
- 请注意默认端口:3128
- 保存就是这样。
要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/simple
但pip
的错误不告诉你。
我也没有在这方面的专家,但我通过设置〜/ .bashrc文件中的all_proxy
variables的工作。 要打开~/.bashrc
文件并从terminal运行下面的命令进行编辑,
gedit ~/.bashrc &
在文件末尾添加以下内容,
export all_proxy="http://xyzw:port"
然后或者打开一个新的terminal或者在同一个terminal中运行,
source ~/.bashrc
仅仅设置http_proxy
和https_proxy
variables对于简单的使用pip install somepackage
是不够的。 虽然以某种方式sudo -E pip install somepackage
作品,但是这给了我一些问题,以防我在我的用户的文件夹中使用Anaconda的本地安装。
PS – 我正在使用Ubuntu 16.04。
如何在本地做? 很可能您可以通过浏览器从https源下载
- 下载你的模块文件(mysql-connector-python-2.0.3.zip / gz …等)。
-
解压缩并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