2015-12-13 62 views
4

我是Django的新手。我正在我的應用中實施Facebook身份驗證。我在終端輸出中遇到的錯誤就像;django-social-auth中的Django錯誤

File "./manage.py", line 10, in <module> 
    execute_from_command_line(sys.argv) 
    File "/usr/local/lib/python2.7/dist-packages/django/core/management/__init__.py", line 350, in execute_from_command_line 
    utility.execute() 
    File "/usr/local/lib/python2.7/dist-packages/django/core/management/__init__.py", line 324, in execute 
    django.setup() 
    File "/usr/local/lib/python2.7/dist-packages/django/__init__.py", line 18, in setup 
    apps.populate(settings.INSTALLED_APPS) 
    File "/usr/local/lib/python2.7/dist-packages/django/apps/registry.py", line 108, in populate 
    app_config.import_models(all_models) 
    File "/usr/local/lib/python2.7/dist-packages/django/apps/config.py", line 202, in import_models 
    self.models_module = import_module(models_module_name) 
    File "/usr/lib/python2.7/importlib/__init__.py", line 37, in import_module 
    __import__(name) 
    File "/usr/local/lib/python2.7/dist-packages/social_auth/models.py", line 4, in <module> 
    from django.utils.importlib import import_module 
ImportError: No module named importlib 

我做錯了什麼?我的新安裝的django-python-social安裝正確嗎?

+1

好像你的Django安裝破碎。 'django.utils.importlib import import_module ImportError:No module named importlib' – utkbansal

+0

任何想法我應該如何解決這個問題? –

+0

嘗試重新安裝Django。你使用的是哪個版本的django? Importlib被棄用,並被刪除在Django 1.9 – utkbansal

回答

8

看起來好像django-social-auth已經issues與django 1.8,所以我不知道它是否有django 1.9的問題。我會推薦使用django-allauth,因爲它是最used/rated package社交網絡,而且很容易配置:

  1. pip install django-allauth
  2. settings.py配置

    TEMPLATES = [ 
    { 
        'BACKEND': 'django.template.backends.django.DjangoTemplates', 
        'DIRS': [os.path.join(BASE_DIR, "templates")], 
        'APP_DIRS': True, 
        'OPTIONS': { 
         'context_processors': [ 
          .... 
          "django.core.context_processors.request", 
          # allauth specific context processors 
          "allauth.account.context_processors.account", 
          "allauth.socialaccount.context_processors.socialaccount", 
         ], 
        }, 
    },] 
    
    AUTHENTICATION_BACKENDS = (
        # Default backend 
        "django.contrib.auth.backends.ModelBackend", 
        # `allauth` specific authentication methods, such as login by e-mail 
        "allauth.account.auth_backends.AuthenticationBackend", 
    ) 
    
    INSTALLED_APPS += (
        # The Django sites framework is required 
        'django.contrib.sites', 
        'allauth', 
        'allauth.account', 
        'allauth.socialaccount', 
        # Login Facebook provider 
        'allauth.socialaccount.providers.facebook', 
    ) 
    SITE_ID = 1 
    
  3. 網址。 py add:

    urlpatterns = patterns('', 
        ... 
        #Auth URLS 
        url(r'^accounts/', include('allauth.urls')), 
    ) 
    
  4. 最後應用數據庫遷移

  5. 運行服務器,並進入管理界面,在 http://127.0.0.1:8000/admin/sites/site和 本地主機,127.0.0.1:8000,或 生產自己的網站域名創建一個網站。它應該有一個id等於在設置之前配置的SITE_ID 。

  6. 配置您的Facebook應用程序,以獲取密鑰,然後創建爲Facebook社交應用在http://127.0.0.1:8000/admin/socialaccount/socialapp

- >您也可能會發現這tutoriel有用

6

django-social-auth已正式被棄用,以支持python-social-auth。所以你不應該使用它。此外,導入錯誤很可能是由於與Django 1.9不兼容導致的,因爲importlib已從django棄用。

+1

OKay我應該使用django 1.8作爲開發目的嗎? –

+3

否。請改用python-social-auth – utkbansal