Python PIL has no attribute 'Image'
Question: I'm using python2.6 and got a problem this morning. It said 'module' has no
attribute 'Image'. Here is my input. Why the first time I can not use
PIL.Image?

    
    
    >>> import PIL
    >>> PIL.Image
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    AttributeError: 'module' object has no attribute 'Image'
    >>> from PIL import Image
    >>> Image
    <module 'PIL.Image' from '/usr/lib/python2.6/dist-packages/PIL/Image.pyc'>
    >>> PIL.Image
    <module 'PIL.Image' from '/usr/lib/python2.6/dist-packages/PIL/Image.pyc'>
    


Answer: PIL's `__init__.py` is just an empty stub as is common. It won't magically
import anything by itself.

When you do `from PIL import Image` it looks in the PIL package and finds the
file Image.py and imports that. When you do `PIL.Image` you are actually doing
an attribute lookup on the PIL module (which is just an empty stub unless you
explicitly import stuff).

In fact, importing a module usually **doesn't** import submodules. `os.path`
is a famous exception, since the os module is magic.

More info:  
[The Image Module](http://effbot.org/imagingbook/image.htm)

