2010-01-01 12 views

Répondre

10

Python ne prend pas chaque sous-répertoire de chaque répertoire dans sys.path être nécessairement un paquet : uniquement ceux avec un fichier appelé __init__.py. Considérons la session shell suivante:

$ mkdir adir 
$ echo 'print "hello world"' > adir/helo.py 
$ python -c 'import adir.helo' 
Traceback (most recent call last): 
    File "<string>", line 1, in <module> 
ImportError: No module named adir.helo 
$ touch adir/__init__.py 
$ python -c 'import adir.helo' 
hello world 

Vous voyez? Avec juste le répertoire adir et le module helo.py dedans, la tentative de import adir.helo échoue. Si __init__.py existe également dans adir, puis Python sait que adir est un package, et par conséquent l'importation réussit.

7

Votre question n'est pas claire. Que demandez-vous exactement?

Le fichier __init__.py est-il si votre dossier peut être défini comme a package, ce qui vous permet de faire des choses comme:

from myapp.models import Something 
Questions connexes