web-dev-qa-db-fra.com

Python PIL n'a pas d'attribut 'Image'

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 mon entrée. Pourquoi la première fois que je ne peux pas utiliser 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'>
26
Squall

__init__.py De PIL est juste un talon vide comme cela est courant. Il 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 en fait une recherche d'attribut sur le module PIL (qui n'est qu'un talon vide à moins que vous n'importiez explicitement des éléments).

En fait, importer un module est généralement ne le fait pas importer des sous-modules. os.path Est une exception célèbre, car le module os est magique.

Plus d'informations:
Le module d'image

33
Antimony

Tu peux faire:

try:
    import Image
except ImportError:
    from PIL import Image

il vaut mieux utiliser un oreiller à la place du PIL.

3
Reza-S4