2014-01-22 6 views
6

Ich kann eine interaktive Shell von der Kommandozeile aus öffnen, nur nicht von PyDev innerhalb von Eclipse. Das Klicken durch Django --> Shell with django environment erhalte ich folgende Ausgabe:Zum interaktiven Django Shell in PyDev

import sys; print('%s %s' % (sys.executable or sys.platform, sys.version)) 
C:\Python27\python.exe 2.7.5 (default, May 15 2013, 22:43:36) [MSC v.1500 32 bit (Intel)] 
PyDev console: using default backend (IPython not available). 

from django.core import management;import carbon_factors.settings as settings;management.setup_environ(settings) 
Traceback (most recent call last): 
    File "<console>", line 1, in <module> 
AttributeError: 'module' object has no attribute 'setup_environ' 

Um zu versuchen und zu lösen dieses I aktualisiert PyDev haben 3.2.0 ohne Änderung an den Ausgang. Ich benutze Django 1.6.

Ich habe mir den Kommentar here angesehen, der mich here zeigte. Die angenommene Antwort scheint jedoch bereits in Django/PyDev eingebaut worden zu sein, da die Zeile, die in manage.py geändert werden soll, bereits geändert wurde.

+0

Haben Sie setzen Ihre manage.py & settings.py in Projekteigenschaften -> PyDev-Django? –

+0

Ja. Oder zumindest etwas - sie wurden beide gesetzt, als ich nachschlage. –

Antwort

9

setup_environ wurde in Django 1.6 veraltet. Siehe here.

Soweit ich das beurteilen kann, hat PyDev diese Methode zum Starten einer Django-Shell in das Rechtsklick-Projekt -> "shell with Django environment" -Menüpunkt fest programmiert. Dies ist ein Problem, das PyDev angehen muss (hoffentlich indem es vereinfacht, was auch immer unter dem Deckmantel mit diesem Befehl getan wird, nur "python manage.py shell"!) Ich glaube nicht, dass ihr Menübefehl derzeit manage.py aufruft warum die anderen Antworten nicht für dich funktionierten.

Option 1 Als hacky Vermeidung des Problems fügen "von django.conf Importeinstellungen; settings.configure()" auf die anfänglichen Interpreter Befehle in Window-> Preferences-> PyDev-> interaktive Konsole. Sie sehen immer noch den Fehler, aber zumindest haben Sie Ihre Einstellungen.

Option 2 In Window-> Einstellungen-> Interpreter-> Registerkarte Umgebung eine Umgebungsvariable "DJANGO_SETTINGS_MODULE" add mit der Python-Pfad-Datei, um Ihre Einstellungen punktierten (schließt die 'Py' am Ende).

+0

Ich hatte das gleiche Problem. Ich hatte bereits Option 2 ohne Glück ausprobiert, aber Option 1 hat es geschafft. –

+0

Ich benutze Neon und Django 1.10. Als ich Option 1 versuchte, sah ich die Neon-Testversion so, dass 1.10 nicht korrekt erkannt werden konnte. Ich fügte hinzu, "" " wenn '1.10' in django.get_version(): \t von django.core.wsgi Import get_wsgi_application \t application = get_wsgi_application() """ Zum beggining. Aber jetzt bekomme ich "django.core.exceptions.ImproperlyConfigured: Die Einstellung SECRET_KEY darf nicht leer sein." – pedrovgp

0

Um eine aktuelle Antwort zu haben, funktioniert das für mich mit Django 1.8 und Eclipse Luna.

0

Für Django 1.10 und Eclipse Neon. Nach Option 1 from andy.

Meine Einstellungsdatei befindet sich in myproject/config/settings/local.py.

Gehe zu: Window-> Einstellungen-> PyDev-> Interaktive Console-> Initial-Befehle und ersetzen Sie die erste Zeile mit:

import os; os.environ['DJANGO_SETTINGS_MODULE'] = 'config.settings.local'; import django 
if '1.10' in django.get_version(): 
    django.setup()