2010-01-13 64 views
2

我試圖用mod_python將我的Django應用程序部署到基於Apache2的服務器上。我已經正確設置了處理程序並進行了配置,以使mod_python與我的項目一起工作。我的項目實現自定義身份驗證後端連接我的用戶Twitter和我的後端實現是:在Apache上沒有識別出Django自定義驗證後端

myproject 
|- backends/ 

directory.Everything似乎是工作的罰款,我的網頁加載,我可以正常讀/寫操作。但每當我試圖用我的Twitter帳戶登錄,應用程序觸發一個例外告訴我:

錯誤導入認證後端backends.twitteroauth:「無模塊命名backends.twitteroauth」

在我的settings.py,我中號註冊我的後端爲

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

問題是什麼?

+0

這與gunicorn也是一個問題。 – 2012-07-25 08:52:37

回答

2

刪除數據庫解決了我的問題。據我猜測,如果用戶登錄,他的相應登錄後端將作爲會話變量保存在數據庫中。我的settings.py文件是

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

之前我做了更正。更改settings.py並重新啓動應用程序是不夠的。您也必須從數據庫中刪除與會話相關的記錄。

2

問題是,python無法找到模塊twitteroauthTwitterBackend是什麼文件的名稱?還要確保backends中有一個__init__.py文件將其標記爲一個包。

編輯:

如果你運行shell

python manage.py shell 

,並嘗試那裏匯入發生什麼呢?

from myproject.backends.twitteroauth import TwitterBackend 

因爲其他工作正常,我猜myproject是在你的python路徑。

+0

TwitterBackend是一個類,文件是twitteroauth。我在目錄中有__init__.py。 – 2010-01-13 16:15:26

+0

'init.py'或'__init __。py'? – 2010-01-13 16:48:46

1

確保後端位於python路徑中,並且該文件夾中有一個init.py文​​件。