2009-06-08 10 views
14

Ho installato il modulo di registrazione, l'ho aggiunto a settings.py. Quando ho provato a correre (sitename.devsettings% python sitename/syncdb manage.py --settings) syncdbRimanere bloccato a errore Django: Nessun modulo denominato registrazione

Mi ha dato "Error: No module named registrazione"

Le stesse opere di impostazione (utilizzando gli stessi file per tutto) va bene sul server. Questo accade sul mio computer locale che esegue OS X.

Ho controllato il percorso sys, il percorso in cui si trova il modulo di registrazione è elencato e anche il modulo effettivo è in posizione. Dal momento che non c'è molto altro in uscita, non sono sicuro di come eseguire il debug di più. Quale potrebbe essere la causa di questo problema?

risposta

7

Ci possono essere errori Python nei modelli registration. Provare ad avviare una shell e la loro importazione, li istanziare, ecc

0

La mia prima ipotesi sarebbe che non hai aggiunto 'registration' in installed apps nel file settings.py.

Forse si sta utilizzando un diverso settings.py (o localsettings.py) sul server.

+0

Ciò non darebbe quell'errore. Ad ogni modo, afferma espressamente che l'ha aggiunto a settings.py. –

0

Basta provare questo

1) Metti giù l'applicazione di registrazione all'interno del vostro progetto come un app

e fare lo syncdb


fare il seguito per scoprire la causa esatta dell'errore

1.go to you project directory 
2.python manage.py dbshell 
3.in shell 
4.import registration 
5.if you get error here which means your registration module is not 
there on the python path (or) some problem in finding that one. 
if it works then some other problem like improper compilation ............. 
+0

L'ho fatto. Ottenuto l'errore durante l'esecuzione di syncdb. – Boon

+0

modificato la mia risposta si prega di vedere e provare quei passaggi. –

+1

"registrazione di importazione" funziona. Ancora bloccato come prima :( –

20

Dal momento che questa pagina si classifica bene in Google, sembra un buon posto per una risposta generale che potrebbe aiutare. A volte il nome della cartella in svn/git è diverso dal nome della cartella in settings.py - una trappola per gli sprovveduti.

Quindi, se INSTALLED_APPS riferimento per il vostro roba come mywhatever.someapp allora è probabile che si desidera settings.py di essere nella cartella "mywhatever", con una sottocartella "someapp" che contiene un file __init__.py.

+0

+1 - Questo probabilmente aiuterà altri neofiti come me. Grazie! – sage

+0

I * sempre * dimentico di farlo quando creo una cartella "app" e mi tiro fuori i capelli (beh, non ho i capelli, ma ottieni il punto) finché non mi ricordo di mettere un file __init__.py nelle app cartella. – tfitzgerald

+2

intendi '__init __. Py', giusto? – ObscureRobot

1

Assicurati di avere una voce in installed_apps, e hai almeno 4 file nelle tue app. init.py, urls.py, models.py e views.py

9

Si cita sys.path così si potrebbe aver provato questo, tuttavia questo era il mio problema e sono sicuro che alcune persone leggendo questo lo hanno pure.

aprire il prompt dei comandi e digitare (con la barra finale):

export PYTHONPATH=pathto/myproject/ 

quindi immettere:

export DJANGO_SETTINGS_MODULE=settings 

Questo mi permette di modificare le impostazioni.il file py alla lista della INSTALLED_APPS in questo modo:

INSTALLED_APPS = (
    'django.contrib.admin', 
    'django.contrib.auth', 
    'django.contrib.contenttypes', 
    'django.contrib.sessions', 
    'django.contrib.sites', 
    'myapp', 
    'registration', 
) 

invece di:

INSTALLED_APPS = (
    'django.contrib.admin', 
    'django.contrib.auth', 
    'django.contrib.contenttypes', 
    'django.contrib.sessions', 
    'django.contrib.sites', 
    'myproject.myapp', 
    'myproject.registration', 
) 
6

Ero semplicemente manca una virgola dopo la voce 'registrazione' nel file settings.py. Una volta aggiunta la virgola dopo "registrazione", Syncdb ha funzionato per me.

3

Ho avuto questo problema. Avevo salvato l'app nella cartella del progetto (come in, la stessa cartella di manage.py), ma con riferimento a "nomeprogetto.appname" invece di "appname" in INSTALLED_APPS in settings.py.

1

Ho avuto questo su SX anche con virtualenv, dopo l'installazione con PIP come da documenti. Ho fatto un'altra installazione usando easy_install e dopo, tutto ha funzionato.

easy_install -Z django-registration 
0

Se ciò accade a Windows e durante l'utilizzo di virtualenv, è probabilmente a causa di virtualenv.

Installare il pacchetto nell'ambiente locale (non virtualenv) e dovrebbe funzionare.

Ho avuto lo stesso problema con le forme django-croccanti.

6

basta fare questo nella vostra virtualenv

pip install django-registration

+0

controlla anche di non aver installato dif v di registrazione (ad esempio django-registration-redux, ecc.) – azochz

3

fisso! Ho avuto lo stesso problema, stavo cercando di registrare sottomoduli, come:

project 
organization 
    categories 

Nelle mie impostazioni file aggiunto

> INSTALLED_APPS = (
>  'django.contrib.admin', 
>  'django.contrib.auth', 
>  'django.contrib.contenttypes', 
>  'django.contrib.sessions', 
>  'django.contrib.sites', 
>  ... 
>  'organization.categories', ) 

Quando si genera un modulo nelle categorie delle cartelle si dispone di un init .pyc ho copiato il file nella cartella "organizzazione", poi ho eseguire i seguenti comandi:

sudo python manage.py makemigrations 
sudo ./manage.py syncdb 

E funziona file!

0

Ho affrontato questo problema fino a quando ho capito che l'ambiente non era attivato.

Controlla se Virtualenv è attivato. In caso contrario, eseguire nella shell

source .<enviroment name>/bin/activate 
0

Quando ho installato django-registrazione al mio ENV virtuale, ho avuto lo stesso errore. Non so come ha funzionato esattamente, ma quando ho installato questo lib nella directory principale di Python (non virtuale env) l'errore è scomparso.

Forse aiuterà qualcuno.

Problemi correlati