2

我正在尝试使用 mod_python 将我的 Django 应用程序部署到基于 Apache2 的服务器。我已经正确设置了处理程序并进行了配置以使 mod_python 与我的项目一起工作。我的项目实现了一个自定义身份验证后端以将我的用户连接到 twitter,并且我的后端实现在:

myproject
|- backends/

directory.Everything 似乎工作正常,我的页面加载,我可以正确地进行读/写操作。但是每当我尝试使用我的 Twitter 帐户登录时,应用程序都会触发一个异常,告诉我:

导入身份验证后端 backends.twitteroauth 时出错:“没有名为 backends.twitteroauth 的模块”

在我的 settings.py 中,我将我的后端注册为

AUTHENTICATION_BACKENDS = (
   'django.contrib.auth.backends.ModelBackend',
   'myproject.backends.twitteroauth.TwitterBackend',
)

问题是什么?

4

3 回答 3

2

问题是python找不到模块twitteroauth。文件的名称TwitterBackend是什么?还要确保有一个__init__.py文件backends将其标记为包。

编辑:

如果你运行 shell 会发生什么

python manage.py shell

并尝试将其导入那里?

from myproject.backends.twitteroauth import TwitterBackend

由于其他任何东西都可以正常工作,我想myproject在你的 python 路径中。

于 2010-01-13T12:07:13.340 回答
2

删除数据库解决了我的问题。据我猜测,如果用户登录,他相应的登录后端将作为会话变量保存在数据库中。我的 settings.py 文件是

AUTHENTICATION_BACKENDS = (
   'django.contrib.auth.backends.ModelBackend',
   'backends.twitteroauth.TwitterBackend',
)

在我进行更正之前。更改 settings.py 并重新启动应用程序是不够的。您也必须从数据库中删除与会话相关的记录。

于 2010-01-13T16:23:00.390 回答
1

确保后端位于 python 路径上,并且文件夹中有一个init .py 文件。

于 2010-01-13T14:19:44.160 回答