通过代理安装python模块
我想安装两个使用easy_install的python包。他们在安装脚本中使用urrlib2模块。我尝试使用公司代理让easy_install下载所需的软件包。因此,为了测试代理连接,我尝试了以下代码。我不需要为IE中的代理提供任何凭据通过代理安装python模块,python,proxy,urllib2,Python,Proxy,Urllib2,我想安装两个使用easy_install的python包。他们在安装脚本中使用urrlib2模块。我尝试使用公司代理让easy_install下载所需的软件包。因此,为了测试代理连接,我尝试了以下代码。我不需要为IE中的代理提供任何凭据 proxy = urllib2.ProxyHandler({"http":"http://mycompanyproxy-as-in-IE:8080"}) opener = urllib2.build_opener(proxy) urllib2.install_o
proxy = urllib2.ProxyHandler({"http":"http://mycompanyproxy-as-in-IE:8080"})
opener = urllib2.build_opener(proxy)
urllib2.install_opener(opener)
site = urllib2.urlopen("http://google.com")
Error:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\Python27\lib\urllib2.py", line 126, in
return _opener.open(url, data, timeout)
File "C:\Python27\lib\urllib2.py", line 406, in
response = meth(req, response)
File "C:\Python27\lib\urllib2.py", line 519, in
'http', request, response, code, msg, hdrs)
File "C:\Python27\lib\urllib2.py", line 444, in
return self._call_chain(*args)
File "C:\Python27\lib\urllib2.py", line 378, in
result = func(*args)
File "C:\Python27\lib\urllib2.py", line 527, in
raise HTTPError(req.get_full_url(), code, msg
urllib2.HTTPError: HTTP Error 407: AuthorizedOnly
proxy=urllib2.ProxyHandler({“http”:”http://mycompanyproxy-as-in-IE:8080"})
opener=urlib2.build\u opener(代理)
urllib2.install_opener(opener)
site=urlib2.urlopen(“http://google.com")
错误:
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
文件“C:\Python27\lib\urllib2.py”,第126行,在
return\u opener.open(url、数据、超时)
文件“C:\Python27\lib\urllib2.py”,第406行,在
响应=方法(请求,响应)
文件“C:\Python27\lib\urllib2.py”,第519行,在
“http”、请求、响应、代码、消息、hdrs)
文件“C:\Python27\lib\urllib2.py”,第444行,在
返回自我。调用链(*args)
文件“C:\Python27\lib\urllib2.py”,第378行,在
结果=func(*args)
文件“C:\Python27\lib\urllib2.py”,第527行,在
raise HTTPError(请求获取完整url(),代码,消息
urllib2.HTTPError:HTTP错误407:AuthorizedOnly
这是我的代码有问题吗?还是代理不允许从python进程进行连接?我可以通过设置代理来安装R软件包。错误表明还需要授权。 请尝试以下代码:
proxy = urllib2.ProxyHandler({"http":"http://mycompanyproxy-as-in-IE:8080"})
proxy_auth_handler = urllib2.HTTPBasicAuthHandler()
proxy_auth_handler.add_password('realm', 'host', 'username', 'password')
opener = build_opener(proxy, proxy_auth_handler)
urllib2.install_opener(opener)
site = urllib2.urlopen("http://google.com")
我认为这应该可行。设置以下环境变量:
HTTP_PROXY=http://user:password@your-company-proxy.com:8080
以及
HTTPS_PROXY=http://user:password@your-company-proxy.com:8080
如果您的代理端口不是8080,您也应该使用适当的端口号更改8080。如果您没有修改全局系统变量的权限(只有在您具有本地管理员权限的情况下才能这样做),只需将其添加到用户级变量中即可 从
My Computer>Properties>Advanced>Environment Variables
(如果在Windows 7中,则从“高级属性”进行设置)
设置好该变量后,关闭所有cmd
窗口并再次启动命令提示符。然后,您可以使用普通的setuptoolseasy\u install
和pip
下载并安装Python软件包
如果您需要通过Python使用它,该库会处理httplib
和urllib
的怪癖
请求
将自动读取HTTP\u PROXY
并使用该代理;但以下是手动执行该操作的方法(示例来自:
使用setx http_代理和https_代理通过Windows cmd/PowerShell运行 这两者都是必需的,因为仅仅设置http_代理是不够的 如上所述,但已为Windows配置: setx HTTP_代理 以及
HTTPS_PROXY=http://user:password@your-company-proxy.com:8080
setx HTTPS_PROXY您可以执行以下命令:
sudo-pip--proxy