陷入Django错误:没有名为注册的模块

Boo*_*oon 17 django

我安装了注册模块,将其添加到settings.py中.当我尝试运行syncdb时(%python sitename/manage.py syncdb --settings sitename.devsettings)

它给了我"错误:没有模块命名注册"

服务器上的相同设置(对所有内容使用相同的文件)很好.这发生在运行OS X的本地计算机上.

我检查了sys.path,列出了注册模块所在的路径,并且实际模块也就位.由于没有其他输出,我不知道如何进一步调试.什么可能导致这个问题?

Sco*_*ton 24

由于此页面在Google中排名很好,因此它似乎是一个可能有用的一般答案的好地方.有时,svn/git中的文件夹名称与settings.py中的文件夹名称不同 - 这是一个不谨慎的陷阱.

因此,如果INSTALLED_APPS引用你的东西作为mywhatever.someapp,那么你可能希望settings.py位于"mywhatever"文件夹中,子文件夹"someapp"包含一个__init__.py文件.


sar*_*ole 12

你提到sys.path所以你可能已经尝试过这个,但这是我的问题,我相信有些读这篇文章的人也有.

打开命令提示符并输入(使用尾部斜杠):

export PYTHONPATH=pathto/myproject/
Run Code Online (Sandbox Code Playgroud)

然后输入:

export DJANGO_SETTINGS_MODULE=settings
Run Code Online (Sandbox Code Playgroud)

这允许我编辑settings.py文件以列出INSTALLED_APPS,如下所示:

INSTALLED_APPS = (
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.sites',
    'myapp',
    'registration',
 )
Run Code Online (Sandbox Code Playgroud)

代替:

INSTALLED_APPS = (
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.sites',
    'myproject.myapp',
    'myproject.registration',
)
Run Code Online (Sandbox Code Playgroud)


小智 8

只需在你的virtualenv中这样做

pip install django-registration


Joh*_*n G 7

您的registration模型中可能存在Python错误.尝试启动shell并导入它们,实例化它们等.


小智 7

我只是在settings.py文件中的'registration'条目后丢失了一个逗号.一旦我在'注册'之后添加了逗号,Syncdb就为我工作了.


小智 5

固定的!我遇到了同样的问题,我试图注册子模块,例如:

project
 organization
    categories
Run Code Online (Sandbox Code Playgroud)

在我的设置文件中我添加了

> INSTALLED_APPS = (
>     'django.contrib.admin',
>     'django.contrib.auth',
>     'django.contrib.contenttypes',
>     'django.contrib.sessions',
>     'django.contrib.sites',
>     ...
>     'organization.categories',  )
Run Code Online (Sandbox Code Playgroud)

当您在文件夹类别中生成模块时,您有一个init .pyc我将此文件复制到“组织”文件夹中,然后执行以下命令:

sudo python manage.py makemigrations
sudo ./manage.py syncdb
Run Code Online (Sandbox Code Playgroud)

并且它可以工作文件!