简体   繁体   中英

AttributeError: 'module' object has no attribute 'request'

When I run the following code in Python 3.3:

import urllib
tempfile = urllib.request.urlopen("http://yahoo.com")

I get the following error:

在此处输入图片说明

I did this too to verify:

在此处输入图片说明

What am I doing wrong?

The urllib module has been split into parts and renamed in Python 3 to urllib.request , urllib.parse , and urllib.error .


Import urllib.request instead of urllib .

import urllib.request

Interestingly, I noticed some IDE-depending behavior.

Both Spyder and PyCharm use the same interpreter on my machine : in PyCharm I need to do

import urllib.request

while in Spyder,

import urllib

does fine

如果这是在 PyCharm 上,就像我的一样,请确保您的文件名不是 urllib.py。

  • In visual code , u have to write import urllib.request instead of just import urllib.
  • Also, whenever errors such as module x has no attribute y occurs , it's because you have named the current file same as the package you are trying to import.
  • So, the way import in python works is that it first searches the current dir, and if it finds the module/package 'x' u were looking for , it assumes that it has found the target file, and searches for 'y'. And since u haven't defined 'y', the aforementioned error occurs.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM