ImportError:没有名为' django.contrib.sitesallauth'在django-allauth

时间:2015-05-16 12:11:16

标签: django python-3.x django-allauth

我正在使用Django 1.7和python 3.4。 我正在尝试使用django-allauth进行用户身份验证,我正在关注此链接http://www.sarahhagstrom.com/2013/09/the-missing-django-allauth-tutorial/ 但是在尝试迁移应用程序时遇到了这个问题。

Traceback (most recent call last):
  File "C:\Python34\lib\site-packages\django\apps\config.py", line 118, in creat
e
    cls = getattr(mod, cls_name)
AttributeError: 'module' object has no attribute 'sitesallauth'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "manage.py", line 10, in <module>
    execute_from_command_line(sys.argv)
  File "C:\Python34\lib\site-packages\django\core\management\__init__.py", line
385, in execute_from_command_line
    utility.execute()
  File "C:\Python34\lib\site-packages\django\core\management\__init__.py", line
354, in execute
    django.setup()
  File "C:\Python34\lib\site-packages\django\__init__.py", line 21, in setup
    apps.populate(settings.INSTALLED_APPS)
  File "C:\Python34\lib\site-packages\django\apps\registry.py", line 85, in popu
late
    app_config = AppConfig.create(entry)
  File "C:\Python34\lib\site-packages\django\apps\config.py", line 123, in creat
e
    import_module(entry)
  File "C:\Python34\lib\importlib\__init__.py", line 109, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 2254, in _gcd_import
  File "<frozen importlib._bootstrap>", line 2237, in _find_and_load
  File "<frozen importlib._bootstrap>", line 2224, in _find_and_load_unlocked
ImportError: No module named 'django.contrib.sitesallauth'

问题的可能原因和解决方案是什么。

3 个答案:

答案 0 :(得分:11)

您在INSTALLED_APPS中的“django.contrib.sites”条目后缺少逗号。

答案 1 :(得分:3)

好像您忘了在django.contrib.sitesallauth应用之间添加逗号。

答案 2 :(得分:0)

没有sitesallauth这样的模块,它应该是allauth,例如

INSTALLED_APPS = (
    # ...
    'django.contrib.allauth',
)

然后通过pip安装:

pip install allauth

对于Python 3,您可能需要使用pip3

简单测试:

$ python3
>>> import django
>>> from django.contrib import auth
>>> from django.contrib import allauth
# If it fails, check if your `sys.path` is correct.
>>> import sys
>>> sys.path