2015-01-05 34 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)的开引号,而不是常规的双引号,复制的可能结果,并粘贴已被写入与原来的文件一位使用这些“更聪明”引号的编辑。