Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/333.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
通过代理安装python模块_Python_Proxy_Urllib2 - Fatal编程技术网

通过代理安装python模块

通过代理安装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

我想安装两个使用easy_install的python包。他们在安装脚本中使用urrlib2模块。我尝试使用公司代理让easy_install下载所需的软件包。因此,为了测试代理连接,我尝试了以下代码。我不需要为IE中的代理提供任何凭据

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
窗口并再次启动命令提示符。然后,您可以使用普通的setuptools
easy\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--proxyinstall

你确定你的公司代理不需要凭据吗?也许IE记得你很久以前输入的一些凭据,或者你公司的IT员工输入的凭据?也许,我不确定它是否与我的PC或intranet passowrd的登录凭据相同?用于更新pR中的包我只使用--internet2选项。如果您的计算机是域的成员,并且您的代理是Windows服务器,那么您的代理几乎肯定希望您的域登录。更糟糕的是,它可能希望您的域登录在NTLM中。“realm”是我登录的域吗?“host”是什么?--添加\u密码(realm、uri、user、passwd)--“realm”只是一个信息,它是一个字符串,例如:“XYZ应用程序”,uri可以是单个uri,也可以是一个uri序列。realm、user和passwd必须是字符串。这会导致(user、passwd)在给定任何uri的realm和super uri的身份验证时用作身份验证令牌。