2012-08-11 5 views
9

J'utilise python2.6 et j'ai eu un problème ce matin. Il a dit que 'module' n'a pas d'attribut 'Image'. Voici ma contribution. Pourquoi la première fois je ne peux pas utiliser PIL.Image?Python PIL n'a pas d'attribut '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'> 

Répondre

14

Le code PIL __init__.py est juste un bout vide comme c'est commun. Cela n'importera rien par magie par lui-même.

Lorsque vous faites from PIL import Image, il regarde dans le package PIL et trouve le fichier Image.py et l'importe. Lorsque vous faites PIL.Image vous effectuez une recherche d'attribut sur le module PIL (qui est juste un bouchon vide sauf si vous importez explicitement des choses). En fait, l'importation d'un module en fait l'importation de sous-modules. os.path est une exception célèbre, puisque le module os est magique.

Plus d'infos:
The Image Module

-1

Au lieu de from PIL import Image ou import PIL
essayer

`PIL.Image` 
2

Vous pouvez faire:

try: 
    import Image 
except ImportError: 
    from PIL import Image 

il est préférable d'utiliser un oreiller à la place PIL.

Questions connexes