Django: Benutzerdefinierte Befehle können nicht ausgeführt werden

8

Ich habe einen einfachen benutzerdefinierten Befehl geschrieben, hallo.py:

%Vor%

Wenn ich Python manage.py Hallo starte, gibt es

zurück

Unbekannter Befehl: 'Hallo'

  • Ich habe es in das Management / Commands-Verzeichnis unterhalb meiner App gelegt.
  • Ich habe __init__.py-Dateien zum Verwaltungs- und Befehlsverzeichnis hinzugefügt.
  • Ich habe überprüft, dass meine App in INSTALLED_APPS in settings.py
  • ist
  • Ich habe versucht, es in verschiedenen Apps und auch im Projektstamm zu installieren

Das Ausführen von Python manage.py syncdb usw. ist in Ordnung. Und wenn ich Python in der Kommandozeile eintippe, kann ich django.core.management ok importieren.

Ich weiß, dass mir etwas offensichtlich fehlt, aber ich kann nicht herausfinden, was.

Wie kann ich dies debuggen, um herauszufinden, warum mein benutzerdefinierter Befehl nicht ausgeführt wird?

    
FunLovinCoder 28.11.2010, 10:31
quelle

2 Antworten

6

Das Problem war, dass ich ein anderes Projekt auf meinem PYTHONPATH hatte. Oh! Ich denke, dass es von dort zuerst die settings.py aufgenommen hat, also meine App nicht gesehen hat. Was mich in diese Richtung wies war, dass ich versucht habe, python manage.py create_jobs myapp (von django command extensions) auszuführen und es gab einen Fehler zurück, der darauf hinwies, dass die App nicht gefunden werden konnte. Auch @ Knutin erwähnt INSTALLED_APPS.

    
FunLovinCoder 28.11.2010, 12:48
quelle
0

Dies liegt daran, dass __init__.pyc nicht automatisch im Ordner "management" und "commands" erstellt wird. Kopiere your_app/__init__.py und your_app/__init__.pyc und füge sie in den Ordner management / and commands / ein.

    
maQbex 17.05.2014 15:39
quelle

Tags und Links