De nombreux répertoires dans un projet django contiennent un __init__.py
et je pense qu'il sera utilisé comme initialisation pour quelque chose. Où est-ce __init__.py
utilisé?Pourquoi django contient beaucoup de '__init__.py'?
3
A
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
- 1. __import __() appelle __init__.py deux fois?
- 2. vues de sous-répertoire Django et importer tous les fichiers de __init__.py
- 3. Django ne trouve pas mes templatetags, même s'il est dans INSTALLED_APPS et a un __init__.py
- 4. API d'un paquet en python. Dans __init__.py?
- 5. Puis-je utiliser __init__.py pour définir des variables globales?
- 6. Fonction globale dans __init__.py non accessible avec Pylons + Python
- 7. beaucoup à beaucoup dans django
- 8. __init__.py descend de dirtree pour python, mais pas de C++; provoque l'erreur "import matplotlib"
- 9. les importations relatives de __init__ dans plusieurs fichiers applications Django
- 10. Django Beaucoup à beaucoup d'insertion Commande
- 11. classe __init__ (pas exemple __init__)
- 12. django-grappelli et beaucoup d'erreurs rares
- 13. Création d'une relation dans __init__ d'un modèle (Django)
- 14. Django: Remplacement de __init__ pour les formulaires personnalisés
- 15. select_related() et beaucoup à beaucoup de champs avec ajax (Django)
- 16. makemessages de Django crée beaucoup d'entrées floues
- 17. surcharge __init__ de unittest.TestCase
- 18. objets Constructing dans __init__
- 19. vues django urllib2.py https erreur Twilio api
- 20. Pourquoi les projets django sont-ils des paquets python?
- 21. GC contient beaucoup d'objets épinglés après un certain temps
- 22. variables de classe db.Model et __init__
- 23. facebook type django sélectionner pour beaucoup à plusieurs champs
- 24. Django arrêté les tests
- 25. Django TemplateSyntaxError
- 26. pourquoi mon code django ne peut pas être un «scripts autonome Django
- 27. Commande personnalisée django introuvable
- 28. Exécution de Django depuis IDLE
- 29. py-appscript & events
- 30. django queryset pour beaucoup à de nombreux champs