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?
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:
-
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,
-
. 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ügenUnd dort haben Sie es, jetzt können Sie die Verwendung von IDLE machen. Ich hoffe, das hilft.
Angenommen, Sie sind unter Windows:
- 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.
- starten IDLE
-
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.