Ответ 1
В моделях registration
могут быть ошибки Python. Попробуйте запустить оболочку и импортировать ее, создавая экземпляр и т.д.
Я установил модуль регистрации, добавив его в settings.py. Когда я попытался запустить syncdb (% python sitename/manage.py syncdb --set sitename.devsettings)
Он дал мне "Ошибка: нет модуля с именем регистрации"
Такая же настройка работает (с использованием одинаковых файлов для всего) на сервере. Это происходит на моей локальной машине с операционной системой OS X.
Я проверил sys.path, указав путь, в котором находится модуль регистрации, и фактический модуль также находится на своем месте. Поскольку вышло не так много, я не уверен, как отлаживать дальше. Что может вызвать эту проблему?
В моделях registration
могут быть ошибки Python. Попробуйте запустить оболочку и импортировать ее, создавая экземпляр и т.д.
Поскольку эта страница хорошо выглядит в Google, это похоже на хорошее место для общего ответа, который может помочь. Иногда имя папки в svn/ git отличается от имени папки в settings.py - ловушке для неосторожного.
Итак, если INSTALLED_APPS
ссылается на ваш материал как на mywhatever.someapp, скорее всего, вы хотите, чтобы settings.py находился в папке "mywhatever" с подпапкой "someapp", содержащей файл __init__.py
.
Вы упомянули 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',
)
Я просто пропустил запятую после записи "registration" в файле settings.py. Как только я добавил запятую после регистрации, Syncdb работал у меня.
просто сделайте это в своем virtualenv
pip install django-registration
У меня была эта проблема. Я сохранил приложение в папке проекта (например, в той же папке, что и файл manage.py), но ссылался на "имя_проекта" вместо "appname" в INSTALLED_APPS в settings.py.
Фиксированный! У меня была та же проблема, я пытался зарегистрировать подмодули, например:
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
И он работает с файлом!
Убедитесь, что у вас есть запись в installed_apps, и у вас есть минимум 4 файла в ваших приложениях. init.py, urls.py, models.py и views.py
У меня было это на SX с virtualenv тоже, после установки с PIP в соответствии с документами. Я сделал еще одну установку, используя easy_install, и после этого все сработало.
easy_install -Z django-registration
Мое первое предположение: вы не добавили 'registration'
в installed apps
в файл settings.py
.
Возможно, вы используете другой settings.py
(Or localsettings.py
) на сервере.
Просто попробуйте это
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 .............
Если это происходит с вами в Windows и при использовании virtualenv, возможно, из-за virtualenv.
Установите этот пакет на локальную (не виртуальную) среду и он должен работать.
У меня была та же проблема с django-crispy-forms.
Я столкнулся с этой проблемой, пока не понял, что окружающая среда не активирована.
Проверьте, активирован ли ваш Virtualenv. Если нет, запустите в оболочке
source .<enviroment name>/bin/activate
Когда я установил django-registration для своего виртуального env, у меня была такая же ошибка. Не знаю, как это работает, но когда я установил этот lib в основной каталог Python (не виртуальный env), ошибка исчезла.
Возможно, это поможет кому-то.