2013-08-04 10 views
11

Ricevo satchmo per provare, ma ho un grosso problema al primo tentativo e non capisco cosa c'è di sbagliato. Quando fare $ python clonesatchmo.py nel progetto Django chiaro, Trow un errore:Satchmo clonesatchmo.py ImportError: impossibile importare nome 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. 

e crea una cartella di archivio. cercando smth come questo sta lavorando !!:

$ 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" 

ho Django 1.6 e Satchmo 0.9.3, Python 2.7.5 (io non uso virtualenv)

+0

"(Io non uso virtualenv)" orly? '/ some/path/to/python' sembra proprio uno. – AdamKG

+0

@AdamKG Ma è un percorso standard ... è stato consigliato in google gruppi di fare questa azione .. "/ some/path/to/python" è: '/Library/Frameworks/Python.framework/Versions/2.7/ Risorse/Python.app/Contents/MacOS/Python' – Pruntoff

risposta

11

execute_manager è stato messo sulla strada deprecazione come parte del refactoring del progetto in Django 1.4 https://docs.djangoproject.com/en/1.4/releases/1.4/#django-core-management-execute-manager. Secondo la politica di deprecazione, significa che il codice per execute_manager è stato completamente rimosso in 1.6. Se vedi questo errore di importazione, la versione di Satchmo che stai utilizzando non è stata aggiornata per essere compatibile con Django 1.6.

+1

Grazie mille !! Ma come posso individuare dove sostituirlo? Sostituisco tutte le importazioni in 'manage.py's ma mi sembra che mi manchi smth ... – Pruntoff

+0

Anche se correggi questa importazione, non penso che riuscirai a farlo funzionare. Satchmo non pretende di supportare Django 1.5 molto meno 1.6 che è attualmente in beta. –

65

Sostituire il contenuto di manage.py con il seguente (da un nuovo progetto django 1.6).

#!/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, questa dovrebbe essere la risposta accettata. – swdev

+0

ha funzionato anche per me !! –

+1

questo mi ha aiutato a capire come utilizzare gli esempi di google per usare la loro API da django http://code.google.com/p/google-api-python-client/source/browse/#hg%2Fsamples%2Fdjango_sample – Michael