1

django-social-auth を使用して Google openid ログインをアプリに実装しようとしていますが、私の問題は次のエラーが発生することです。

TemplateSyntaxError at /login
Caught ImportError while rendering: cannot import name get_backend
Request Method: GET
Request URL:    #############################
Django Version: 1.3.1
Exception Type: TemplateSyntaxError
Exception Value:    
Caught ImportError while rendering: cannot import name get_backend
Exception Location: /home/group018/web/WSProject/social_auth/views.py in <module>, line 19
Python Executable:  /usr/bin/python2.7
Python Version: 

例外の場所で、プロジェクトの階層を確認できます。

ファイルは次のview.pyとおりです。

from functools import wraps

from django.http import HttpResponseRedirect, HttpResponse,HttpResponseServerError
from django.core.urlresolvers import reverse
from django.contrib.auth import login, REDIRECT_FIELD_NAME
from django.contrib.auth.decorators import login_required
from django.contrib import messages
from django.utils.importlib import import_module
from django.views.decorators.csrf import csrf_exempt

from WSProject.social_auth.utils import sanitize_redirect, setting, log,backend_setting, clean_partial_pipeline
from WSProject.social_auth.backends import get_backend

DEFAULT_REDIRECT = setting('SOCIAL_AUTH_LOGIN_REDIRECT_URL') or setting('LOGIN_REDIRECT_URL')
LOGIN_ERROR_URL = setting('LOGIN_ERROR_URL', setting('LOGIN_URL'))
RAISE_EXCEPTIONS = setting('SOCIAL_AUTH_RAISE_EXCEPTIONS', setting('DEBUG'))
PROCESS_EXCEPTIONS = setting('SOCIAL_AUTH_PROCESS_EXCEPTIONS','social_auth.utils.log_exceptions_to_messages')


def dsa_view(redirect_name=None):

.
.
.

関数 get_backend が定義されており、次のWSProject/social_auth/backends/__init__.pyようにインポートしようとしました:

from WSProject.social_auth.backends.__init__ import get_backend

しかし、うまくいきません...何か考えはありますか?

私が言ったものへの以下のインポートが機能していることに注意してください

解決済み: 最後に、問題はライブラリでした。jpic が言ったように、それらは正しくインストールされていませんでした。

4

1 に答える 1

2

これを試しましたか?

from social_auth.backends import get_backend

コードでプロジェクトの名前をハードコーディングしないでください。これにより、コードの移植性が低下します。

それでもうまくいかない場合は、django-social-auth が正しくインストールされていません。セットアップを修正します。

  1. プロジェクトの親ディレクトリにvirtualenv を作成します。virtualenv /path/to/venv

  2. virtualenv をアクティブにしますsource /path/to/venv/bin/activate

  3. アプリをインストールします。ギットから:pip install -e git+git://github.com/omab/django-social-auth.git#egg=social_auth

また、 django、virtualenv、および pipに関するより詳細な記事を書いたので、ぜひ参考にしてください。

于 2012-03-05T10:03:12.027 に答える