【问题标题】:Unable to use Django-allauth with my Django project无法在我的 Django 项目中使用 Django-allauth
【发布时间】:2016-01-29 02:09:26
【问题描述】:

作为 Django 新手,在我的项目中使用 Django-allauth 时遇到问题。我在项目的 virtualenv 中成功安装了 Django-allauth 包,并在 settings.py 文件中进行了相关更改,以便与我的项目配置相同。

我还检查了“requirements.txt”文件,其中有一行“django-allauth==0.23.0”。但是当我尝试运行“python manage.py migrate”命令时,我得到了一个 ImportError 说:没有名为 allauth 的模块。

下面是我的 settings.py 代码:

Settings.py

...
INSTALLED_APPS = (
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'django.contrib.sites',
    'allauth',
    'allauth.account',
    'allauth.socialaccount',
    'allauth.socialaccount.providers.facebook',
    'allauth.socialaccount.providers.google',
    'myapp_v1',
)

SITE_ID = 1

STATICFILES_FINDERS = (
    'django.contrib.staticfiles.finders.FileSystemFinder',
    'django.contrib.staticfiles.finders.AppDirectoriesFinder'
)

STATICFILES_DIRS = (
    os.path.join(BASE_DIR, "static"),
)

MIDDLEWARE_CLASSES = (
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.common.CommonMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
    'django.middleware.security.SecurityMiddleware',
)

ROOT_URLCONF = 'myapp.urls'

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [os.path.join(BASE_DIR, 'templates')],
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
                'django.template.context_processors.debug',
                'django.template.context_processors.request',
                'django.contrib.auth.context_processors.auth',
                'django.contrib.messages.context_processors.messages',
                'django.template.context_processors.request',
            ],
        },
    },
]

AUTHENTICATION_BACKENDS = (
    'django.contrib.auth.backends.ModelBackend',
    'allauth.account.auth_backends.AuthenticationBackend',
)
...

如果我在这里遗漏了什么,请告诉我。

【问题讨论】:

  • 一些检查。检查您的盒子上是否有多个 python 安装。如果是,请确保项目正在使用安装了您的模块的实例。运行pip freeze,看看你是否可以看到你的模块安装在显示的列表中
  • 感谢您的帮助 Vishal。我跑了pip freeze,Django-allauth 在列表中。但我不确定如何检查多个 python 版本以及我的项目使用哪一个。你能不能帮我做同样的事情,让我知道如何检查它。
  • 您使用的是哪个操作系统和 IDE(如果有)?
  • 我使用的是 Ubuntu15.04,并且没有为这个项目使用任何 IDE。
  • 试试这个链接了解python的所有版本。如果您不使用任何 IDE,那么我认为多个版本不会有问题askubuntu.com/questions/505081/what-version-of-python-do-i-have

标签: django django-allauth django-settings


【解决方案1】:

由于我们在 cmets 中的讨论确定了问题所在,我将发布我的答案。 我建议您可以使用一些方法。

  • 卸载其中一个 python 版本,因为您实际上不需要运行两个 python。或者,从您的环境变量中删除其中一个 python 路径,以便 CLI 和您的项目使用相同的版本。

  • 使用Pycharm,这是一个IDE,它允许您通过其界面使用特定的python版本,并允许您安装所选版本的软件包。

  • 在 stackoverflow 上关注 this thread。这与您在上次评论中提出的问题类似。

【讨论】:

  • 非常感谢您帮助 Vishal。经过很多麻烦,终于解决了这个问题。我只是像往常一样重新安装了django-allauth,并使用linux命令行将allauth目录从python3.4复制到python2.7。然后再次运行 migrate 命令并显示它的工作时间。我不知道这是否是正确的方法,但最终它起作用了。
  • 是的,即使这样也很好。很高兴为您提供帮助。
猜你喜欢
  • 2015-09-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-07-03
  • 2012-01-16
  • 2012-06-19
相关资源
最近更新 更多