Python PIL has no attribute 'Image'

2019-02-11 20:26发布

问题:

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'>

回答1:

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



回答2:

You can do:

try:
    import Image
except ImportError:
    from PIL import Image

it's better to use pillow instead PIL.



回答3:

Instead of from PIL import Image or import PIL
try

`PIL.Image`