2013-08-04 10 views
11

Ich bekomme Satchmo zu versuchen, aber ich habe ein großes Problem auf Anhieb, und ich verstehe nicht, was falsch ist. Als ich $ python clonesatchmo.py in klares django Projekt zu machen, Trows es einen Fehler:Satchmo conesatchmo.py ImportError: Name kann nicht importiert werden execute_manager

$ python clonesatchmo.py 
Creating the Satchmo Application 
Customizing the files 
Performing initial data synching 
Traceback (most recent call last): 
    File "manage.py", line 18, in <module> 
    from django.core.management import execute_manager 
ImportError: cannot import name execute_manager 
Traceback (most recent call last): 
File "manage.py", line 18, in <module> 
    from django.core.management import execute_manager 
ImportError: cannot import name execute_manager 
Error: Can not copy the static files. 
Error: Can not syncdb. 

und erstellt einen Speicherordner. versucht, smth wie das funktioniert !!:

$ python manage.py shell 
>>> import os, sys 
>>> print sys.executable 
/some/path/to/python 
>>> os.system('bash') 
$ /some/path/to/python manage.py validate 
# this is NOT fail on "from django.core.management import execute_manager" 

Ich habe Django 1.6 und Satchmo 0.9.3, Python 2.7.5 (Ich benutze keine virtualenv)

+0

"(Ich benutze nicht virtualenv)" orly? '/ some/path/to/python' sieht sicher wie einer aus. – AdamKG

+0

@AdamKG Aber es ist Standart-Pfad ... es war in Google-Gruppen beraten, diese Aktion zu machen .. die "/ einige/Pfad/zu/Python" ist: '/Library/Frameworks/Python.framework/Versions/2.7/ Ressourcen/Python.app/Inhalte/MacOS/Python' – Pruntoff

Antwort

11

execute_manager auf dem deprecation Weg gebracht wurde als Teil des Projekt Layout Refactor in Django 1.4 https://docs.djangoproject.com/en/1.4/releases/1.4/#django-core-management-execute-manager. Laut der Ablehnungsrichtlinie bedeutet dies, dass der Code für execute_manager in 1.6 vollständig entfernt wurde. Wenn dieser Importfehler auftritt, wurde die von Ihnen verwendete Version von Satchmo nicht aktualisiert, um mit Django 1.6 kompatibel zu sein.

+1

Vielen Dank !! Aber wie kann ich herausfinden, wo ich es ersetzen kann? Ich ersetze alle Importe in 'manage.py's aber es scheint, ich vermisse ssm ... – Pruntoff

+0

Selbst wenn Sie diesen Import beheben, glaube ich nicht, dass Sie in der Lage sein werden, das zu funktionieren. Satchmo behauptet nicht, Django 1.5 viel weniger 1.6 zu unterstützen, welches gerade in der Beta ist. –

65

Ersetzen Sie den Inhalt von manage.py durch Folgendes (aus einem neuen django 1.6-Projekt).

#!/usr/bin/env python 
import os 
import sys 

if __name__ == "__main__": 
    os.environ.setdefault("DJANGO_SETTINGS_MODULE", "<app>.settings") 

    from django.core.management import execute_from_command_line 

    execute_from_command_line(sys.argv) 
+7

Imo, das sollte die akzeptierte Antwort sein. – swdev

+0

es funktionierte auch für mich !! –

+1

Dies half mir bei der Berechnung der Verwendung von googles Beispielen für die Verwendung ihrer API aus django http://code.google.com/p/google-api-python-client/source/browse/#hg%2Fassamples%2Fdjango_sample – Michael