Застревание при ошибке Django: нет модуля с именем регистрации - PullRequest
16 голосов
/ 08 июня 2009

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

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

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

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

Ответы [ 15 ]

24 голосов
/ 16 июля 2010

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

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

12 голосов
/ 25 марта 2011

Вы упомянули 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',
)
8 голосов
/ 05 августа 2013

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

pip install django-registration

7 голосов
/ 08 июня 2009

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

6 голосов
/ 13 мая 2011

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

3 голосов
/ 27 марта 2015

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

project
 organization
    categories

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

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

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

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

И это работает файл!

3 голосов
/ 18 ноября 2012

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

2 голосов
/ 12 февраля 2013

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

easy_install -Z django-registration
1 голос
/ 09 декабря 2010

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

0 голосов
/ 27 июля 2018

Я столкнулся с этой проблемой, потому что я запутался с моим virtualenv.

У меня было два открытых окна:

  1. Запуск сервера
  2. Выполнение моих команд

Я успешно установил пакет регистрации Django в свой venv на моем компьютере с Windows:

$ . venv/Scripts/activate
$ pip install Django-registration-redux==2.0

Но моего сервера не было в venv, поэтому он не смог найти пакет.

Остановил сервер, в этом окне ввел venv, затем перезапустил сервер и все хорошо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...