J'ai créé un sous-répertoire de mon projet Django appelé bin
où je veux mettre tous les scripts Python exécutés en ligne de commande. Certains de ces scripts doivent importer mon fichier Django projet settings.py
qui se trouve dans un répertoire parent de bin
.Comment importer un fichier Django settings.py Fichier Python d'un sous-répertoire?
Comment puis-je importer le fichier settings.py
à partir d'un sous-répertoire du projet?
Le code que j'utilise dans mon script de ligne de commande pour définir dans le « contexte Django » du projet est:
from django.core.management import setup_environ
import settings
setup_environ(settings)
Cela fonctionne bien si le script est dans le répertoire racine de mon projet.
J'ai essayé les deux hacks suivants pour importer le fichier settings.py
puis la configuration du projet:
import os
os.chdir("..")
import sys
sys.path = [str(sys.path[0]) + "/../"] + sys.path
Le hack cruel peut importer settings.py
, mais je reçois l'erreur:
project_module = __import__(project_name, {}, {}, [''])
ValueError: Empty module name
Merci pour la réponse, j'étais trop fainéant pour chercher en ajoutant des commandes de gestion auparavant, mais c'est exactement ce que je voulais faire et aider à garder tous mes scripts en un seul endroit. – MikeN