ImportError с использованием django-social-auth - PullRequest
1 голос
/ 05 марта 2012

Я пытаюсь использовать 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.

1 Ответ

2 голосов
/ 05 марта 2012

Вы пробовали это?

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. Установить приложение т.е.из git: pip install -e git+git://github.com/omab/django-social-auth.git#egg=social_auth

Я также написал более подробную статью о django, virtualenv и pip , которые должны вас заинтересовать.

...