2013-02-14 11 views
11

Qualcosa nel mio percorso python deve essere cambiato perché ora non riesco a eseguire il.Django 1.4 Comando sconosciuto: 'runserver'

python app/manage.py runserver 

L'output che ottengo è

Unknown command: 'runserver' 
Type 'manage.py help' for usage. 

Ho guardato PYTHONPATH e PATH variabili del mio ambiente, ma non riesco a capire perché la sua non è in esecuzione.

+0

questo è veramente il più bizzarro. Quale sistema operativo stai usando? Sono tentato di suggerire di reinstallare Django. –

+0

Provare a creare un nuovo progetto Django o ambiente + progetto per localizzare la rottura? – millimoose

+7

cosa produce "output python app/manage.py help"? – fsw

risposta

18

Ho trovato la risposta alla mia domanda.

  • Se hai un errore nelle impostazioni, manage.py ingerisce l'eccezione e segnala come se il comando non esistesse.
  • Questo mi ha portato lungo il percorso assumendo erroneamente il mio percorso Python o l'ambiente venv era incasinato.

Se si vuole per diagnosticare il problema, eseguire ...

python app/manage.py help 

... e mostrerà l'eccezione. Questo, ovviamente, era ciò che era raccomandato dalla shell di django dopo che mi aveva detto che il comando non era stato trovato.

Questo è chiaramente un bug in Django 1.4. Mi sembra, dovrebbe essere riportata un'eccezione indipendentemente da quale comando di gestione si esegue.

+1

puoi anche usare './manage.py check' per mostrare gli errori che sono altrimenti soppressi. – Nimo

+0

Grazie :) Questo mi ha aiutato anche io! –

+0

Per Django 1.4 './manage.py check' non funzionerà. Dovresti invece usare './manage.py validate'. https://docs.djangoproject.com/en/1.4/ref/django-admin/#validate – Zemogle

1

Guardare attraverso il codice manager.py e django.core.management Posso venire con alcuni suggerimenti.

Innanzitutto, verificare se il file <some_path>/django/core/management/commands/runserver.py esiste.

In secondo luogo, eseguire:

>>> import sys 
>>> sys.path 

Se il suddetto <some_path> non è in questo elenco di quanto è necessario impostare la variabile PYTHONPATH.

In terzo luogo, (e questo è il più lungo di tutti i colpi), se è stato modificato il DEFAULT_PORT di runserver, prova a cambiare di nuovo a 8000.

0

Sono d'accordo con OP. Ho incontrato lo stesso problema e si è verificato un errore in settings.py:
In settings.py uso os.environ[something] e quelle variabili di ambiente sono caricate nello script di avvio di Apache. Se eseguo manage.py dalla riga di comando, non si sa cosa sia os.environ[something] quindi si verifica un errore.

Quindi per chiunque sia alla ricerca di una soluzione, il suggerimento è di verificare la differenza tra tra il progetto django in esecuzione e pure manage.py, forse troverai quello che non va.

0

Aggiungo la mia risposta allo stesso problema che ho avuto. Questo non era correlato alla versione di Django, ma in un vecchio esempio del mio progetto stavo fornendo la mia copia Django e non installando da pip. Più tardi ho deciso di usare Pip installato Django.

Quando ho eseguito le modifiche sul server, la copia del file repo dei file Django è stata eliminata ma non i file .pyc.manage.py importerebbe ancora i vecchi file .pyc facendo in modo che le importazioni si interrompano a metà e l'errore è lo stesso "Unknown command: runserver".

Naturalmente, l'eliminazione completa della cartella con i file .pyc ha risolto il problema.

Problemi correlati