import urllib2
response=urllib2.urlopen("http://yts.ag")
print response.info()
response.close()
上面的程序在python 2.7中显示了以下错误。
Traceback (most recent call last):
File "url_test.py", line 1, in <module>
import urllib2
File "C:Python27liburllib2.py", line 111, in <module>
from urllib import (unwrap, unquote, splittype, splithost, quote,
File "D:PythonPython Test codesurllib.py", line 4, in <module>
"Names and Addresses, URIs, URLs, URNs, URCs", at
AttributeError: 'module' object has no attribute 'urlopen'
我尝试替换库文件,但没有帮助。
从您的回溯来看,它表明您的 cwd 中的一个文件被称为 urllib.py
,您不能这么称呼它,因为urllib2
需要导入一个也名为 urllib
的模块。它当前正在尝试导入位于D:PythonPython Test codesurllib.py
的文件。
要修复此错误,您只需重命名该文件。
注意:您永远不应该乱七八糟地更改库的源代码。它会把图书馆搞砸。
查看回溯中的这 2 行:
File "C:Python27liburllib2.py", line 111, in <module>
from urllib import (unwrap, unquote, splittype, splithost, quote,
File "D:PythonPython Test codesurllib.py", line 4, in <module>
"Names and Addresses, URIs, URLs, URNs, URCs", at
您的一个文件与urllib2
调用的内置模块之一之间存在明显的命名冲突。它使您的urllib.py
与其内置的混淆。您需要做的就是重命名文件,它应该可以工作。
注意:切勿将文件命名为与您使用的库相似,否则会遇到一些"意外"错误。