24

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,115
  • 8
  • 21
  • 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
  • 586
  • 1
  • 7
  • 9
30

Use urllib2.urlopen for Python 2.

Danila Vershinin
  • 7,428
  • 2
  • 24
  • 33
SilentGhost
  • 287,765
  • 61
  • 300
  • 288
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
  • 11,793
  • 2
  • 38
  • 48