2012-08-11 30 views
9

Estoy usando python2.6 y tengo un problema esta mañana. Dijo que 'módulo' no tiene atributo 'Imagen'. Aquí está mi entrada. ¿Por qué la primera vez que no puedo usar PIL.Image?Python PIL no tiene ningún atributo 'Imagen'

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

Respuesta

14

PIL de __init__.py es sólo un trozo vacío como es común. No importará mágicamente nada por sí mismo.

Cuando lo hace from PIL import Image se ve en el paquete PIL y encuentra el archivo Image.py e importa eso. Cuando haces PIL.Image, en realidad estás haciendo una búsqueda de atributos en el módulo PIL (que es solo un talón vacío a menos que importes cosas explícitamente).

De hecho, la importación de un módulo generalmente no contiene los submódulos de importación. os.path es una famosa excepción, ya que el módulo os es mágico.

Más información:
The Image Module

-1

En lugar de from PIL import Image o import PIL
tratar

`PIL.Image` 
2

que puede hacer:

try: 
    import Image 
except ImportError: 
    from PIL import Image 

que es mejor usar la almohada en lugar PIL.

Cuestiones relacionadas