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'>
__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
Tu peux faire:
try:
import Image
except ImportError:
from PIL import Image
il vaut mieux utiliser un oreiller à la place du PIL.