2012-03-28 12 views
16

Sto provando ad installare django-extensions + graphviz + pygraph ma non posso. Ho fatto le seguenti operazioni (in Ubuntu):I comandi Django django-extensions non sono disponibili (graph_models)

sudo apt-get install graphviz libgraphviz-dev graphviz-dev python-pygraphviz 

nel virtualenv progetto (in esecuzione pitone 2.7.2+):

source <path to virtualenv>/bin/activate 
pip install django django-extensions 

Se corro

which python 

esso seleziona il python nel mio virtualenv, quindi il python che sto usando è quello giusto. nel sito-package del virtualenv ho pygraphviz e django-extensions

python manage.py shell 
import django_extensions 
import pygraphviz 
RUNS OK 

nel mio progetto Django ho aggiunto 'django_extensions' nel mio INSTALLED_APPS

Ma quando ho eseguito

python manage.py help 

i non può vedere i comandi e non sono disponibili.

python manage.py graph_models -a -g -o model.png 
Unknown command: 'graph_models' 
Type 'manage.py help' for usage. 

Come posso risolvere questo problema? Grazie!

+0

Benvenuto! È un progetto esistente? per esempio 'python manage.py runserver' funziona bene? Giusto per confermare - non ci sono comandi 'django-extension' che appaiono quando si esegue' python manage.py help'? –

+0

Sì, confermo, non viene mostrato il comando django-extension – Michael

risposta

25

Esegui questo in guscio manage.py:

from django.conf import settings; 'django_extensions' in settings.INSTALLED_APPS 

Se non restituisce vero, allora vuol dire che non hai aggiunto 'django_extensions' correttamente INSTALLED_APPS, e che sarebbe l'unica ragione perché Django non trova il comando.

+0

non 'python manage.py runserver' fallisce se' django_extensions' non è stato aggiunto correttamente? –

+0

Grazie! il settings.py non è stato importato nel modo giusto ... ora tutto funziona come previsto ... GRAZIE! – Michael

+0

@pastylegs penso che runserver farebbe semplicemente come se django_extension non fosse affatto lì. Grazie a entrambi per il vostro feedback. – jpic

3

In realtà, se si guarda il codice di manage.py, si noterà che imposta DJANGO_SETTINGS_MODULES in base al sito corrente: diciamo "mysite.settings". Se vuoi che il tuo manage.py elenchi estensioni aggiuntive (es. Da django-extensions o django-evolution), devi aggiungere la cartella del tuo progetto root al tuo percorso python, altrimenti riceverai solo i comandi di base manage.py .

Problemi correlati