Ho creato una sottodirectory del mio progetto Django chiamato bin
dove voglio inserire tutti gli script Python da linea di comando. Alcuni di questi script devono importare il file settings.py
del progetto Django che si trova in una directory principale di bin
.Come importare un file Python settings.py in un file Python da una sottodirectory?
Come è possibile importare il file settings.py
da una sottodirectory del progetto?
Il codice che uso nel mio script da riga di comando per impostare nel "contesto Django" del progetto è:
from django.core.management import setup_environ
import settings
setup_environ(settings)
Questo funziona bene se lo script si trova nella directory principale del mio progetto.
ho provato i seguenti due hack per importare il file settings.py
e poi messa a punto del progetto:
import os
os.chdir("..")
import sys
sys.path = [str(sys.path[0]) + "/../"] + sys.path
L'hack crudele possibile importare settings.py
, ma poi ho l'errore:
project_module = __import__(project_name, {}, {}, [''])
ValueError: Empty module name
Grazie per la risposta, ero troppo pigro per cercare di aggiungere comandi di gestione prima, ma è proprio quello che volevo fare e aiuta a mantenere tutti i miei script in un unico posto. – MikeN