urllib.request和urllib2都不起作用

时间:2013-08-17 03:11:26

标签: python python-2.7 import module

我正在尝试学习Python,而我正在尝试学习模块。我使用的Python版本是Python 2.7.4。我试图学习的模块是urllib。但每当我试图运行下面的代码时,我收到一个名为'no import named request'的错误。代码如下。

import urllib.request

class App():
    def main(self):
        inp = raw_input('Please enter a string\n')
        print(inp)
        inp = input('Please enter a value\n')
        print(inp)

if __name__ == '__main__':
    App().main()

然后我尝试使用urllib2。所以我用

更改了第一行
import urllib2

然后它说'IndentationError:期望一个缩进的块'。但如果我写

import urllib

然后我没有得到任何错误。但后来我无法使用该库的任何功能。

2 个答案:

答案 0 :(得分:1)

urllib.request适用于Python 3.对于Python 2,您需要执行以下操作:

from urllib import urlopen

或使用urllib2模块:

from urllib2 import urlopen

你不应该得到IndentationError,但你可能做了一些小错误。

答案 1 :(得分:1)

这是python2.7的简单沙箱实现:

import urllib

def main():
    #one indentation level
    print urllib.urlopen("http://stackoverflow.com").read ()

if __name__ == '__main__': main()

如果此代码运行而您的代码没有运行,则问题不在于导入/使用urllib。它使用pthon2.7.4在我的机器上运行。

替代版本:

from urllib import urlopen

def main():
    #one indentation level
    print urlopen("http://stackoverflow.com").read ()

if __name__ == '__main__': main()

或使用您的App-Class

import urllib

class App:
    def main(self):
        print urllib.urlopen("http://stackoverflow.com").read ()

if __name__ == '__main__':
    App().main()