Frage

Ich möchte meine django Projekt Form IDLE-Shell in Windows testen. Ich betreibe folgende Befehle

from django.template import Template, Context
t = Template('test template')

, aber ich erhalte folgende Fehlermeldung.

Traceback (most recent call last):


File "<pyshell#1>", line 1, in <module>
    t = Template('test template')
  File "C:\Program Files\Python26\lib\site-packages\django\template\__init__.py", line 164, in __init__
    if settings.TEMPLATE_DEBUG and origin is None:
  File "C:\Program Files\Python26\lib\site-packages\django\conf\__init__.py", line 28, in __getattr__
    self._import_settings()
  File "C:\Program Files\Python26\lib\site-packages\django\conf\__init__.py", line 59, in _import_settings
    self._target = Settings(settings_module)
  File "C:\Program Files\Python26\lib\site-packages\django\conf\__init__.py", line 94, in __init__
    raise ImportError, "Could not import settings '%s' (Is it on sys.path? Does it have syntax errors?): %s" % (self.SETTINGS_MODULE, e)
ImportError: Could not import settings 'C:\Program Files\Python26\Lib\site-packages\django\conf' (Is it on sys.path? Does it have syntax errors?): Import by filename is not supported.

Können Sie mir helfen?

War es hilfreich?

Lösung

braucht Django mehrere Dateien wie Ihre settings.py zu laden. Aushelfen mit dieser Aufgabe kommt Django mit seinem eigenen Shell rel="nofollow (die frei sein). Wenn Sie IPython installiert ist, wird Django es verwenden, statt.

, um die Schale zu erhalten, verwenden Sie die manage.py Datei im Root-Verzeichnis:

python manage.py shell

Wenn Sie noch wirklich wollen IDLE außerhalb des Bereichs der „./manage.py Schale“ vollständig nutzen, sehen Sie die manage.py Datei, um zu sehen, wie Django lädt in allen benötigten Dateien.

Als Bonus, schauen Sie in django-Befehlserweiterungen shell_plus (es gibt ein paar nette zusätzliche Funktionen wie das Laden alle Modelle automatisch).

Andere Tipps

Erstellen Sie eine Verknüpfung, und ändern Sie dann Argumente haben, ähnlich wie diese:

C:\Python27\pythonw.exe c:\Python27\lib\idlelib\idle.py -r d:\projects\project_X\manage.py shell

Wenn Sie unter Windows PYTHONSTARTUP haben, wird es laufen, aber dann wird es einen neuen Prozess zu starten, alle funcs verlieren Sie in PYTHONSTARTUP-Datei definiert haben.

Effektiv sehen Sie es zweimal unten starten (1. Mal in grün, dann rot):

Python 2.7.2 (Standard, 12. Juni 2011, 15.08.59) [MSC v.1500 32 Bit (Intel)] auf win32 Geben Sie copyright, credits oder license() für weitere Informationen.

startup.py gerade lief

Python 2.7.2 (Standard, 12. Juni 2011, 15.08.59) [MSC v.1500 32 Bit (Intel)] auf win32 Typ help, copyright, credits oder license für weitere Informationen, (InteractiveConsole)

das wahr war, bevor virtuelle env und shell_plus und ipython installieren. eine dieser 3 abgespritzt es nach unten - Müll in der IDLE-Konsole jetzt immer:

0; 32min 1; 32m1 0; 32m: 0m

aus dem cmd Leerlauf verwenden ich folgend in Windows tat 7:

  1. Made sicher, dass der Pfad Systemumgebungsvariable den Pfad zu dem Ort von idle.py enthalten (wie C: \ Python27 \ Lib \ idlelib). Während ich dort war auch sicher, dass ich gemacht, dass sowohl Python und der Ordner Scripts enthalten sind (letztere enthält django-manage.py, wenn sie von pip installiert)

    Pfad: C: \ Python27 \; C: \ Python27 \ Scripts; C: \ Python27 \ Lib \ idlelib; ...

    Die Pfade oben gezeigt können auf Ihrer Installation von Python variieren,

  2. . Optional: zu vermeiden, dass die Py Erweiterung eingeben ich sicher, dass die PATHTEXT Systemumgebungsvariable die Py Erweiterung enthalten

    PATHTEXT : .COM; .EXE; ..., Py

Alles was ich jetzt tun, während auf der cmd arbeitet, ist der folgende läuft Leerlauf eingeben:

  • eine Datei mit Leerlauf öffnen (im selben Verzeichnis sein):

    idle models.py
    

    das wird die models.py Datei öffnen, im Ruhe zu bearbeiten

  • Öffnen Sie die Schale mit Leerlauf (im selben Verzeichnis wie manage.py ist)

    idle -r manage.py shell
    

Hinweis : Wenn Py nicht in der Variable PATHTEXT Systemumgebung ist, müssen Sie möglicherweise die Py-Erweiterung in dem Leerlauf

hinzufügen

Und dort haben Sie es, jetzt können Sie die Verwendung von IDLE machen. Ich hoffe, das hilft.

Angenommen, Sie sind unter Windows:

  1. Rechtsklick auf Ihrem IDLE-Link Eigenschaften zu erhalten. Dort wird der Zielpfad ändern Sie den Pfad Ihr django-Projekt sein wird (das Verzeichnis mit Ihrer manage.py Datei ausgeführt wird.
  2. starten IDLE
  3. Ausführen

    import os; os.environ.setdefault ( "DJANGO_SETTINGS_MODULE", "my_project_root_name.settings")

Jetzt ist Ihre IDLE hat den richtigen Kontext gesetzt, um die Einstellungen kennen und ausführen Klassen in Ihrem django-Pfad.

Bitte sagen Sie mir, wenn Sie von einer noch eleganter Art und Weise denken. (Getestet unter Win 10 mit Python 3.6)

Sie müssen nur IDLE von Django Projektverzeichnis laufen. Wenn Sie mit virtualenv:

cd /your/virtualenv/directory
. bin/activate
cd project_directory
python -m idlelib.idle

Das ist alles. Sie können eine beliebige Modul und Funktion von Ihrem Django-Projekt importieren und ausführen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top