ich einen einfachen benutzerdefinierten Befehl, hello.py geschrieben haben:Django: Kann benutzerdefinierte Befehle ausführen
from django.core.management.base import NoArgsCommand
class Command(NoArgsCommand):
help = "prints hello world"
def handle_noargs(self, **options):
print "Hello, World!"
Wenn ich Python manage.py laufen hallo es gibt
Unbekannter Befehl: ‚Hallo '
- Ich habe es in der Verwaltung/Befehle-Verzeichnis unter meiner App.
- Ich habe __init__.py-Dateien zum Verwaltungs- und Befehlsverzeichnis hinzugefügt.
- ich meine App überprüft habe, ist in INSTALLED_APPS in settings.py
- Ich habe versucht, es in verschiedenen Anwendungen und von der Projektwurzel Installation zu
Laufe Python manage.py syncdb etc ist in Ordnung. Und wenn ich Python über die Kommandozeile eintippe, kann ich django.core.management ok importieren.
Ich weiß, ich vermisse etwas offensichtlich, aber kann nicht herausfinden, was.
Wie kann ich dies debuggen, um herauszufinden, warum mein benutzerdefinierter Befehl nicht ausgeführt wird?
Durch "checked meine app ist in settings.py", meinst du es ist in INSTALLED_APPS? – knutin
Haben Sie mehrere Python-Versionen/Installationen auf Ihrem System? 'which python' wird dir sagen, welche Python-Version du verwendest, wenn 'python manage.py' ausgeführt wird. Wenn 'env python' ausgeführt wird, wird der Python gestartet, der './manage.py' startet. Ist es die gleiche Version? – knutin
@knutin. Ja, es ist in INSTALLED_APPS. Ja mehrere Versionen und welche Python gibt Alias python = 'python2.6'/usr/local/bin/python2.6 zurück. Allerdings scheint env python Python 2.4.3 zu starten und django zu importieren funktioniert nicht, wenn ich env python starte. Wenn ich jedoch python manage.py ausführe, gehe ich davon aus, dass ich den korrekten Python ausführe und es immer noch nicht funktioniert. – FunLovinCoder