2012-08-11 1 views
9

Sto usando python2.6 e ho riscontrato un problema stamattina. Ha detto che "modulo" non ha attributo "Immagine". Ecco il mio input Perchè la prima volta non posso usare PIL.Image?Python PIL non ha attributo 'Immagine'

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

risposta

14

PIL __init__.py è solo un troncone vuoto come è comune. Non importerà magicamente nulla da solo.

Quando si esegue from PIL import Image, appare nel pacchetto PIL e trova il file Image.py e lo importa. Quando fai lo PIL.Image stai facendo una ricerca di attributi sul modulo PIL (che è solo uno stub vuoto a meno che tu non importi esplicitamente cose).

In effetti, l'importazione di un modulo di solito non include i sottomoduli di importazione. os.path è una famosa eccezione, dal momento che il modulo os è magico.

Maggiori informazioni:
The Image Module

-1

Invece di from PIL import Image o import PIL
provare

`PIL.Image` 
2

si può fare:

try: 
    import Image 
except ImportError: 
    from PIL import Image 

è meglio usare cuscino invece PIL.