2015-01-05 68 views
0

我試圖在本地計算機上運行django網站。它在外部服務器上工作正常,但我沒有設置它,現在我無法訪問所有規格。django 1.6和allauth中的UnicodeDecodeError

我遇到的問題是當我嘗試以已定義的用戶身份登錄網站時。運行在調試模式下,我得到含有在頂部的消息的詳細的錯誤頁:

的UnicodeDecodeError在/帳戶/登錄/ 「ASCII」編解碼器在位置0不能解碼字節0xe2:順序不在範圍內(128)

低下頭我可以看到,在該行

鍵= hashlib.sha1((key_salt +祕密).encode( 'UTF-8'))在crypto.py發生錯誤,函數salted_hmac .digest()

and d IsPlaying模塊的局部變量我看到

key_salt u'django.contrib.sessionsSessionStore」
祕密 '\ XE2 \ X80 \ x9cXXX「'
值 '{}'

其中XXX是一個50字符字符串與我的配置文件中定義的SECRET_KEY相同。可變祕密是通過分配在功能:

 
    if secret is None: 
     secret = settings.SECRET_KEY 

,我知道的祕密就是沒有在這一點上,因爲它是不使用呼叫者salted_hmac第三個參數。我強烈懷疑發生錯誤是因爲python無法處理可變密鑰開頭的unicode字符。

所以,我有幾個問題:

1)爲什麼我從配置文件中定義的SECRET_KEY setting.SECRET_KEY不同?它是如何應該的?如果這是我有任何控制它應該是什麼?

2)在我的環境中有什麼東西可以對此負責?

一些注意事項:正如我提到它在服務器上運行,運行ubuntu 1.6,python 2.7。不過,我現在無法獲取關於其他軟件包版本的信息。但即使我仍然想知道爲什麼它不適用於我的安裝。我已經用django 1.6.1進行了測試,在lubuntu 14.04上測試了python 2.7,使用了13.2,結果相同。

感謝您的任何幫助或提示。

一個

回答

0

問題解決了:在我的配置文件中的密鑰開始的(Unicode)的開引號,而不是常規的雙引號,複製的可能結果,並粘貼已被寫入與原來的文件一位使用這些「更聰明」引號的編輯。