【问题标题】:ImportError: No module named 'django.contrib.sitesallauth' in django-allauthImportError:django-allauth 中没有名为“django.contrib.sitesallauth”的模块
【发布时间】:2015-07-28 07:44:33
【问题描述】:

我正在使用 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'

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

【问题讨论】:

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


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        【解决方案3】:

        没有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
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2017-04-10
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2017-10-23
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多