Подтвердить что ты не робот

AttributeError: объект 'module' не имеет атрибута 'request'

Когда я запускаю следующий код в Python 3.3:

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

Я получаю следующую ошибку:

enter image description here

Я сделал это тоже, чтобы проверить:

enter image description here

Что я делаю неправильно?

4b9b3361

Ответ 1

Импортируйте urllib.request вместо urllib.

import urllib.request

Ответ 2

Интересно, что я заметил некоторое поведение, зависящее от IDE.

Оба Spyder и PyCharm используют один и тот же интерпретатор на моей машине: в PyCharm мне нужно сделать

import urllib.request

в то время как в Spyder,

import urllib

отлично [/p >

Ответ 3

Если это на PyCharm, как и у меня, убедитесь, что ваше имя файла не является urllib.py.

Ответ 4

  • В визуальном коде вы должны написать импорт urllib.request вместо простого импорта urllib.
  • Кроме того, всякий раз, когда ошибки, такие как , модуль x не имеет атрибута y, возникает, потому что вы назвали текущий файл таким же, как пакет, который вы пытаетесь импортировать.
  • Таким образом, способ импорта в python заключается в том, что он сначала ищет текущий каталог, и если он находит модуль/пакет 'x', который вы искали, он предполагает, что он нашел целевой файл, и ищет 'y'. И так как вы не определили 'y', возникает вышеупомянутая ошибка.