Застревание при ошибке Django: ни один модуль с именем регистрации

Я установил модуль регистрации, добавив его в settings.py. Когда я попытался запустить syncdb (% python sitename/manage.py syncdb --set sitename.devsettings)

Он дал мне "Ошибка: нет модуля с именем регистрации"

Такая же настройка работает (с использованием одинаковых файлов для всего) на сервере. Это происходит на моей локальной машине с операционной системой OS X.

Я проверил sys.path, указав путь, в котором находится модуль регистрации, и фактический модуль также находится на своем месте. Поскольку вышло не так много, я не уверен, как отлаживать дальше. Что может вызвать эту проблему?

Ответы

Ответ 1

В моделях registration могут быть ошибки Python. Попробуйте запустить оболочку и импортировать ее, создавая экземпляр и т.д.

Ответ 2

Поскольку эта страница хорошо выглядит в Google, это похоже на хорошее место для общего ответа, который может помочь. Иногда имя папки в svn/ git отличается от имени папки в settings.py - ловушке для неосторожного.

Итак, если INSTALLED_APPS ссылается на ваш материал как на mywhatever.someapp, скорее всего, вы хотите, чтобы settings.py находился в папке "mywhatever" с подпапкой "someapp", содержащей файл __init__.py.

Ответ 3

Вы упомянули sys.path, чтобы вы, возможно, пробовали это, однако это была моя проблема, и я уверен, что некоторые люди, читающие это, тоже имеют.

откройте командную строку и введите (с завершающей косой чертой):

export PYTHONPATH=pathto/myproject/

затем введите:

export DJANGO_SETTINGS_MODULE=settings

Это позволяет мне отредактировать файл settings.py, чтобы отобразить INSTALLED_APPS следующим образом:

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

вместо:

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

Ответ 4

Я просто пропустил запятую после записи "registration" в файле settings.py. Как только я добавил запятую после регистрации, Syncdb работал у меня.

Ответ 5

просто сделайте это в своем virtualenv

pip install django-registration

Ответ 6

У меня была эта проблема. Я сохранил приложение в папке проекта (например, в той же папке, что и файл manage.py), но ссылался на "имя_проекта" вместо "appname" в INSTALLED_APPS в settings.py.

Ответ 7

Фиксированный! У меня была та же проблема, я пытался зарегистрировать подмодули, например:

project
 organization
    categories

В моем файле настроек я добавил

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

Когда вы создаете модуль в категориях папок, у вас есть init.pyc, я скопировал этот файл в папку "организация", затем выполнил следующие команды:

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

И он работает с файлом!

Ответ 8

Убедитесь, что у вас есть запись в installed_apps, и у вас есть минимум 4 файла в ваших приложениях. init.py, urls.py, models.py и views.py

Ответ 9

У меня было это на SX с virtualenv тоже, после установки с PIP в соответствии с документами. Я сделал еще одну установку, используя easy_install, и после этого все сработало.

easy_install -Z django-registration

Ответ 10

Мое первое предположение: вы не добавили 'registration' в installed apps в файл settings.py.

Возможно, вы используете другой settings.py (Or localsettings.py) на сервере.

Ответ 11

Просто попробуйте это

1) Поместите приложение регистрации в свой проект в качестве приложения

и выполните syncdb


сделайте следующее, чтобы узнать точную причину ошибки

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 .............

Ответ 12

Если это происходит с вами в Windows и при использовании virtualenv, возможно, из-за virtualenv.

Установите этот пакет на локальную (не виртуальную) среду и он должен работать.

У меня была та же проблема с django-crispy-forms.

Ответ 13

Я столкнулся с этой проблемой, пока не понял, что окружающая среда не активирована.

Проверьте, активирован ли ваш Virtualenv. Если нет, запустите в оболочке

source .<enviroment name>/bin/activate 

Ответ 14

Когда я установил django-registration для своего виртуального env, у меня была такая же ошибка. Не знаю, как это работает, но когда я установил этот lib в основной каталог Python (не виртуальный env), ошибка исчезла.

Возможно, это поможет кому-то.