2009-06-08 14 views
14

Instalé el módulo de registro, lo agregué a settings.py. Cuando traté de correr (sitename.devsettings% pitón nombre del sitio/manage.py syncdb --settings) syncdbAtascándose en el error de Django: Ningún módulo llamado registro

Me dio "Error: No se módulo denominado registro"

Las mismas obras de instalación (utilizando los mismos archivos para todo) bien en el servidor. Esto sucede en mi máquina local que ejecuta OS X.

Revisé sys.path, la ruta donde reside el módulo de registro aparece en la lista, y el módulo real también está en su lugar. Como no se está produciendo mucho más, no estoy seguro de cómo seguir depurando. ¿Qué podría estar causando este problema?

Respuesta

7

Puede haber errores de Python en sus modelos registration. Trate de comenzar una concha y importarlos, instanciarlos, etc.

0

Mi primera conjetura sería que no ha agregado 'registration' en installed apps en el archivo settings.py.

Quizás esté usando un settings.py diferente (O localsettings.py) en el servidor.

+0

Eso no daría ese error. De todos modos, dice específicamente que lo ha agregado a settings.py. –

0

Intenta esto

1) Baja el registro de aplicación dentro de su proyecto como una aplicación

y hacer lo syncdb


hacer el siguiente para averiguar la causa exacta del error

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

Lo hice. Obtuve el error al hacer syncdb. – Boon

+0

editó mi respuesta. Consulte y pruebe esos pasos. –

+1

"registro de importación" funciona. Todavía tan atrapado como antes :( –

20

Dado que esta página se clasifica muy bien en Google, parece un buen lugar para una respuesta general que podría ayudar. A veces, el nombre de la carpeta en svn/git es diferente del nombre de la carpeta en settings.py, una trampa para los incautos.

lo tanto, si INSTALLED_APPS referencia tu materia que mywhatever.someapp entonces es probable que desee settings.py para estar en la carpeta "mywhatever", con una "SomeApp" subcarpeta que contiene un archivo __init__.py.

+0

+1 - Esto probablemente ayudará a otros novatos como yo. ¡Gracias! – sage

+0

Yo * siempre * me olvido de hacer esto cuando creo una carpeta de "aplicaciones" y me saco el pelo (bueno, no tengo pelo, pero entiendes el punto) hasta que recuerdo poner un archivo __init__.py en las aplicaciones carpeta. – tfitzgerald

+2

te refieres a '__init __. Py', ¿verdad? – ObscureRobot

1

Asegúrate de tener una entrada en installed_apps, y tienes los 4 archivos mínimos en tus aplicaciones. init.py, urls.py, models.py y views.py

9

Usted menciona sys.path por lo que podría haber intentado esto, sin embargo, esto era mi problema y yo estoy seguro que algunas personas leyendo esto tenerlo también.

abrir el símbolo del sistema y escriba (con la barra final):

export PYTHONPATH=pathto/myproject/ 

luego indicar:

export DJANGO_SETTINGS_MODULE=settings 

Esto me permite editar la configuración.py archivo a la lista del INSTALLED_APPS así:

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

en lugar de:

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

que simplemente faltaba una coma después de la entrada 'registro' en el archivo settings.py. Una vez que agregué la coma después del "registro", 0ncSyncdb funcionó para mí.

3

Tuve este problema. Había guardado la aplicación en la carpeta del proyecto (como en, la misma carpeta que manage.py), pero hace referencia a "projectname.appname" en lugar de simplemente "appname" en INSTALLED_APPS en settings.py.

1

Tuve esto en SX con virtualenv también, después de instalar con PIP según los documentos. Hice otra instalación usando easy_install y después de eso, funcionó.

easy_install -Z django-registration 
0

Si esto le sucede en Windows y mientras usa virtualenv, posiblemente sea por virtualenv.

Instale ese paquete en el entorno local (no virtualenv) y debería funcionar.

Tuve el mismo problema con django-crispy-forms.

6

acaba de hacer esto en su virtualenv

pip install django-registration

+0

también verifique para asegurarse de que no instaló el dif v de registro (es decir, django-registration-redux, et. All) – azochz

3

fijo! Yo tenía el mismo problema, yo estaba tratando de registrar submódulos, como:

project 
organization 
    categories 

En mi configuración presentar añadí

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

Al generar un módulo en las categorías de carpetas tiene un init .pyc he copiado este archivo en la carpeta de "organización", luego ejecutar los siguientes comandos:

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

¡Y funciona el archivo!

0

He enfrentado este problema hasta que descubrí que el entorno no estaba activado.

Comprueba si tu Virtualenv está activado. Si no es así, ejecute en la cáscara

source .<enviroment name>/bin/activate 
0

Cuando he instalado Django-registro a mi env virtual, que he tenido el mismo error. No sé cómo funcionó exactamente, pero cuando instalé esta lib en el directorio principal de Python (no env virtual), el error ha desaparecido.

Quizás Le ayude a alguien.

Cuestiones relacionadas