即使在bash中设置http_proxy后,urllib2给出网络无法访问错误

时间:2012-08-09 11:03:39

标签: python google-app-engine proxy urllib2

我正在尝试在本地测试我的Google App Engine(Python)应用。我需要做一些URL提取,我试过但显示以下错误信息。

"urllib2.URLError: <urlopen error [Errno 101] Network is unreachable>"

所以我试着检查部署是否发生了。它也导致了同样的错误

然后我尝试使用Python shell:

>>>import urllib2
>>>a = urllib2.urlopen("http://google.com")
>>>a.code
200
>>>a.readlines
<addinfourl at 155594924 whose fp = <socket._fileobject object at 0x9443d6c>>

虽然响应代码是200.如果我执行a.readlines我不会得到实际的HTML。 (a .readlines应该输出html?) 在尝试上面之前,我在环境中设置了我的http_proxy变量。我甚至试过urllib2.install_opener(ProxyConfiguredOpener)。它仍然无效。

我无法打开任何urllib2网址,因此我无法使用许多工具,例如使用urllib2进行部署的Google App Engine。任何人都可以说出错了吗?

1 个答案:

答案 0 :(得分:0)

a.code == 200表示urllib2.urlopen()在Python shell中运行时成功。

在App Engine urllib2.urlopen()中运行时使用google.appengine.api.urlfetch()

如果您在本地运行它,它应该使用您的本地网络配置。错误urlfetch cannot be used behind a proxy已修复。