我正在尝试在工作中使用代理背后的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
的那些?
要为Windows设置CNTLM,请按照此article进行操作。对于Ubuntu,请阅读my blog post。
编辑:
基本上,要在任何平台上使用CNTLM,您需要设置用户名和哈希密码,然后才能使用http://127.0.0.1:3128
作为父代理的代理。
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/
有关更详细的说明,请参阅上面的链接。
更新:
为了完整起见,我最近能够在Windows中配置和使用CNTLM。我在Kindle for PC的同步过程中遇到了一个问题,因为我们的代理和安装和配置CNTLM for Windows修复了这个问题。有关详细信息,请参阅my article。
在Windows 7中:
pip install --proxy DOMAIN\user:password@proxyaddress:port package
即:
pip install --proxy BR\neo:[email protected]:8080 virtualenv
打开Windows命令提示符。
设置代理环境变量。
set http_proxy=http://user:password@proxy_ip:port
set https_proxy=https://user:password@proxy_ip:port
在同一Windows命令提示符下使用代理安装Python包。
pip install --proxy="user:password@proxy_ip:port" package_name
如果我在通过公司代理寻找方法时遇到很多麻烦,我通过手机连接到网络(如果我有无线热点,如果没有wifi连接线),并快速做pip install
。
可能不适用于所有设置,但应该让大多数人在紧要关头。
在Ubuntu 14.04 LTS中
sudo pip --proxy http://PROXYDOM:PROXYPORT install package
干杯
我有同样的问题:在工作中使用auth的公司代理背后,我没有pip工作,以及Sublime Text 2(嗯,它适用于我的代理设置的自定义设置)。对于pip(我将在git上尝试),我解决了它安装cntlm代理。配置非常简单:
server:port
要测试它是否有效,只需启动一个新的命令行工具,然后尝试:
pip install django --proxy=localhost:3128
这对我有用。希望这会帮助你。
高级系统设置中的设置环境变量。在命令提示符中,它应该像这样:
C:\ Windows \ system32> echo%http_proxy%
http://username:passowrd@proxy:port
C:\ Windows \ system32> echo%https_proxy%
之后,简单的pip install whatEver
应该工作。
如果你想通过代理升级pip,可以使用(例如在Windows中):
python -m pip --proxy http://proxy_user:proxy_password@proxy_hostname:proxy_port insta
ll --upgrade pip
对于Windows用户:如果要安装Flask-MongoAlchemy,请使用以下代码
pip install Flask-MongoAlchemy --proxy="http://example.com:port"**
在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
实际上,当它不起作用时,我从未遇到过这种情况。对于某些系统,您需要成为root(sudo是不够的)。
警告,“pip search”命令有一些非常糟糕的事情。无论传递方式如何,搜索命令都不使用代理设置。
我试图找出问题只尝试“搜索”命令,并发现这篇文章详细解释了该错误:https://github.com/pypa/pip/issues/1104
我可以使用python 2.7.9在Debian 8上用pip 1.5.6确认bug。 “pip install”命令就像一个魅力。
使用Ubuntu我无法让代理选项像宣传的那样工作 - 所以跟随命令不起作用:
sudo pip --proxy http://web-proxy.mydomain.com install somepackage
但是导出https_proxy
环境变量(注意它的https_proxy
而不是http_proxy
)就可以了:
export https_proxy=http://web-proxy.mydomain.com
然后
sudo -E pip install somepackage
我收到了错误:
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
(代理服务器的端口是转发到localhost:3128
的ssh端口)。
我必须设置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/
重定向到https://pypi.python.org/simple
但pip
的错误并没有告诉你。
我也不是这方面的专家,但我通过在〜/ .bashrc文件中设置all_proxy
变量来实现它。要打开~/.bashrc
文件并从终端运行以下命令进行编辑,
gedit ~/.bashrc &
在文件末尾添加以下内容,
export all_proxy="http://x.y.z.w:port"
然后打开一个新终端或在同一终端中运行以下,
source ~/.bashrc
只设置http_proxy
和https_proxy
变量不足以简单使用pip install somepackage
。虽然不知何故sudo -E pip install somepackage
工作,但这给我一些问题,以防我在我的用户的文件夹中使用本地安装的Anaconda。
附: - 我正在使用Ubuntu 16.04。
在本地做这件事怎么样?您很可能通过浏览器从https源下载
C:\mysql-connector-python-2.0.3>python.exe setup.py install
设置以下环境变量:export PIP_PROXY=http://web-proxy.mydomain.com
如果您使用Linux,则以root身份:
env https_proxy=http://$web_proxy_ip:$web_proxy_port pip install something
当您使用env时,它会导出变量https_proxy,以便当前执行命令pip install。
$ web_proxy_ip是您的代理的主机名或IP $ web_proxy_port是端口
我可以通过运行来实现这一点:
pip install --proxy=http://user:[email protected]:3128 package==version
我在公司代理中使用Python 3.7.3。
这对我有用:
pip --proxy proxy url:port command package
我使用“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的代理。
在Windows下不要忘记设置
SET HTTPS_PROXY=<proxyHost>:<proxyPort>
我需要设定什么
pip install pep8
我没跟我工作。我使用https作品:
pip install --proxy=https://user@mydomain:port somepackage
要进行更新,请添加-U。
您可以通过将公司的根证书添加到site-packages / pip文件夹中的cacert.pem文件来继续使用pip over HTTPS。然后通过在〜/ pip / pip.conf中添加以下行来配置pip以使用您的代理(如果您在Windows上,则添加〜\ pip \ pip.ini):
[global]
proxy = [user:passwd@]proxy.server:port
而已。无需使用第三方软件包或放弃HTTPS(当然,您的网络管理员仍然可以看到您正在做的事情)。
用于窗户;在命令提示符下设置您的代理
set HTTP_PROXY=domain\username:password@myproxy:myproxyport
例:
set http_proxy=IND\namit.kewat:[email protected]:8880
这对我有用(在Windows上通过CMD):
pip install --proxy proxyserver:port requests
$ pip --proxy http://proxy-host:proxy-port install packagename
这对我有用
根据我们的安全策略,我可能不会使用https和pypi,SSL检查重写证书,它打破了www.python.org的内置pip安全性。中间人是网络管理员。
所以我需要使用普通的http。为此,我需要覆盖系统代理以及默认的pypi:
bin/pip install --proxy=squidproxy:3128 -i http://www.python.org/pypi --upgrade "SQLAlchemy>=0.7.10"