AttributeError:'module'对象没有属性'request
当我在Python 3.3中运行以下代码时:
import urllib
tempfile = urllib.request.urlopen("http://yahoo.com")
我遇到了以下错误:
我还这样做来验证:
我哪里做错了?
4 个回答
0
- 在Visual Code中,你需要写成import urllib.request,而不是简单地写import urllib。
- 另外,每当出现模块x没有属性y这样的错误时,通常是因为你当前的文件名和你想要导入的包的名字是一样的。
- 在Python中,导入的方式是这样的:它首先会在当前目录里查找,如果找到了你想要的模块或包'x',它就认为找到了目标文件,然后再去查找'y'。但是因为你并没有定义'y',所以就会出现前面提到的错误。
1
如果你是在PyCharm上操作,就要确保你的文件名不是urllib.py。
3
有趣的是,我发现了一些跟开发环境(IDE)有关的不同表现。
在我的电脑上,Spyder和PyCharm用的是同一个解释器:在PyCharm里,我需要这样写:
import urllib.request
而在Spyder里,
import urllib
就可以正常工作。
153
在Python 3中,urllib
模块被拆分成了几个部分,并且重新命名为urllib.request
、urllib.parse
和urllib.error
。
所以,记得要导入urllib.request
,而不是直接导入urllib
。
import urllib.request