我试图在本地计算机上运行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,结果相同。
感谢您的任何帮助或提示。
一个