25

I can use urllib.request module with Python 3.1. But when I execute the same program using Python 2.7, an error comes along the lines of;

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

I believe this error is because theres no request module in urllib for Python 2.7. Because I need to use tweepy i'll have to stick with Python 2.7 since tweepy does not support Python 3.

So how I can use urllib.request module in Python 2.7?

Dananjaya
  • 2,135
  • 8
  • 22
  • 27

3 Answers3

37

It is also possible to use six module to make code for both python2 & python3:

from six.moves import urllib
# ...
result = urllib.request.urlopen(url)
jellyfish
  • 596
  • 1
  • 7
  • 9
30

Use urllib2.urlopen for Python 2.

Danila Vershinin
  • 8,725
  • 2
  • 29
  • 35
SilentGhost
  • 307,395
  • 66
  • 306
  • 293
4

Take a look at http://docs.python.org/library/urllib2.html.

The urllib2 module is the predecessor to urllib.request/urllib.error (it has been split into those modules in Python 3.0).

Greg S
  • 12,333
  • 2
  • 41
  • 48