2017-10-15 68 views
1

我为我的django项目(Django 1.11和Python 3.6)安装了memcached。 当我在settings.py的memcached_status添加到我安装的应用程序,我得到这个错误,当我尝试打开Django管理页面:Memcache状态不适用于Django 1.11和Python 3.6

Internal Server Error: /admin/ 
Traceback (most recent call last): 
File "/Users/comp/Desktop/Dev/educa/lib/python3.6/site- 
packages/django/core/handlers/exception.py", line 41, in inner 
response = get_response(request) 
File "/Users/comp/Desktop/Dev/educa/lib/python3.6/site- 
packages/django/core/handlers/base.py", line 217, in _get_response 
response = self.process_exception_by_middleware(e, request) 
File "/Users/comp/Desktop/Dev/educa/lib/python3.6/site- 
packages/django/core/handlers/base.py", line 215, in _get_response 
response = response.render() 
File "/Users/comp/Desktop/Dev/educa/lib/python3.6/site- 
packages/django/template/response.py", line 107, in render 
self.content = self.rendered_content 
File "/Users/comp/Desktop/Dev/educa/lib/python3.6/site- 
packages/django/template/response.py", line 84, in rendered_content 
content = template.render(context, self._request) 
File "/Users/comp/Desktop/Dev/educa/lib/python3.6/site- 
packages/django/template/backends/django.py", line 66, in render 
return self.template.render(context) 
File "/Users/comp/Desktop/Dev/educa/lib/python3.6/site- 
packages/django/template/base.py", line 207, in render 
return self._render(context) 
File "/Users/comp/Desktop/Dev/educa/lib/python3.6/site- 
packages/django/template/base.py", line 199, in _render 
return self.nodelist.render(context) 
File "/Users/comp/Desktop/Dev/educa/lib/python3.6/site- 
packages/django/template/base.py", line 990, in render 
bit = node.render_annotated(context) 
File "/Users/comp/Desktop/Dev/educa/lib/python3.6/site- 
packages/django/template/base.py", line 957, in render_annotated 
return self.render(context) 
File "/Users/comp/Desktop/Dev/educa/lib/python3.6/site- 
packages/django/template/loader_tags.py", line 177, in render 
return compiled_parent._render(context) 
File "/Users/comp/Desktop/Dev/educa/lib/python3.6/site- 
packages/django/template/base.py", line 199, in _render 
return self.nodelist.render(context) 
File "/Users/comp/Desktop/Dev/educa/lib/python3.6/site- 
packages/django/template/base.py", line 990, in render 
bit = node.render_annotated(context) 
File "/Users/comp/Desktop/Dev/educa/lib/python3.6/site- 
packages/django/template/base.py", line 957, in render_annotated 
return self.render(context) 
File "/Users/comp/Desktop/Dev/educa/lib/python3.6/site- 
packages/django/template/loader_tags.py", line 177, in render 
return compiled_parent._render(context) 
File "/Users/comp/Desktop/Dev/educa/lib/python3.6/site- 
packages/django/template/base.py", line 199, in _render 
return self.nodelist.render(context) 
File "/Users/comp/Desktop/Dev/educa/lib/python3.6/site- 
packages/django/template/base.py", line 990, in render 
bit = node.render_annotated(context) 
File "/Users/comp/Desktop/Dev/educa/lib/python3.6/site- 
packages/django/template/base.py", line 957, in render_annotated 
return self.render(context) 
File "/Users/comp/Desktop/Dev/educa/lib/python3.6/site- 
packages/django/template/loader_tags.py", line 177, in render 
return compiled_parent._render(context) 
File "/Users/comp/Desktop/Dev/educa/lib/python3.6/site- 
packages/django/template/base.py", line 199, in _render 
return self.nodelist.render(context) 
File "/Users/comp/Desktop/Dev/educa/lib/python3.6/site- 
packages/django/template/base.py", line 990, in render 
bit = node.render_annotated(context) 
File "/Users/comp/Desktop/Dev/educa/lib/python3.6/site- 
packages/django/template/base.py", line 957, in render_annotated 
return self.render(context) 
File "/Users/comp/Desktop/Dev/educa/lib/python3.6/site- 
packages/django/template/loader_tags.py", line 72, in render 
result = block.nodelist.render(context) 
File "/Users/comp/Desktop/Dev/educa/lib/python3.6/site- 
packages/django/template/base.py", line 990, in render 
bit = node.render_annotated(context) 
File "/Users/comp/Desktop/Dev/educa/lib/python3.6/site- 
packages/django/template/base.py", line 957, in render_annotated 
return self.render(context) 
File "/Users/comp/Desktop/Dev/educa/lib/python3.6/site- 
packages/django/template/defaulttags.py", line 322, in render 
return nodelist.render(context) 
File "/Users/comp/Desktop/Dev/educa/lib/python3.6/site- 
packages/django/template/base.py", line 990, in render 
bit = node.render_annotated(context) 
File "/Users/comp/Desktop/Dev/educa/lib/python3.6/site- 
packages/django/template/base.py", line 957, in render_annotated 
return self.render(context) 
File "/Users/comp/Desktop/Dev/educa/lib/python3.6/site- 
packages/django/template/defaulttags.py", line 216, in render 
nodelist.append(node.render_annotated(context)) 
File "/Users/comp/Desktop/Dev/educa/lib/python3.6/site- 
packages/django/template/base.py", line 957, in render_annotated 
return self.render(context) 
File "/Users/comp/Desktop/Dev/educa/lib/python3.6/site- 
packages/django/template/defaulttags.py", line 216, in render 
nodelist.append(node.render_annotated(context)) 
File "/Users/comp/Desktop/Dev/educa/lib/python3.6/site- 
packages/django/template/base.py", line 957, in render_annotated 
return self.render(context) 
File "/Users/comp/Desktop/Dev/educa/lib/python3.6/site- 
packages/django/template/base.py", line 1040, in render 
output = self.filter_expression.resolve(context) 
File "/Users/comp/Desktop/Dev/educa/lib/python3.6/site- 
packages/django/template/base.py", line 736, in resolve 
new_obj = func(obj, *arg_vals) 
File "/Users/comp/Desktop/Dev/educa/lib/python3.6/site- 
packages/memcache_status/templatetags/memcache_status_tags.py", line 
106, in prettyname 
return ' '.join([word.capitalize() for word in name.split('_')]) 
TypeError: a bytes-like object is required, not 'str' 

在他们的github回购他们说,我只需要memchache_status增加我在settings.py中安装的应用程序,它会工作。 有没有人有同样的问题?如果是,我应该如何正确安装我的Django管理页面的memchached状态。

回答

1

更新

我怀疑你也安装python3-memcached(现在已废弃,请参见README)可能已经覆盖您的python-memcached安装(现在支持Python 2 & 3)在这种情况下。如果是这样,您需要删除python3-memcachedpython-memcached,然后重新安装后者,版本> = 1.58。


您需要将python-memcache升级到最新版本,当前是1.58。

该包与您的memcached服务器进行交互,以提取其收集的统计信息。早期版本的软件包没有将传入的统计数据(特别是密钥)解码为Python 3 str类型(即unicode),并且仅将bytes字符串传递给memcached_statusprettyname过滤器 - 该过滤器假定str对象。

+0

不与1.58以及 –

+0

请说明如何在'settings.py'文件中配置'CACHES'。你正在运行什么memcached? – mhawke

+0

https://github.com/jtaylor1989/E-Learning/blob/master/src/educa/settings.py –