Memcache 状态不适用于 Django 1.11 和 Python 3.6
Memcache status not working for Django 1.11 and Python 3.6
我为我的 django 项目(Django 1.11 和 Python 3.6)安装了 memcached。
当我将 memcached_status 添加到我在 settings.py 中安装的应用程序时,我在尝试打开 Django 管理页面时收到此错误:
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 状态。
已更新
我怀疑您还安装了 python3-memcached
(现已弃用,请参阅自述文件),在这种情况下,可能会覆盖您的 python-memcached
安装(现在支持 Python 2 & 3 ).如果是这样,您需要删除 python3-memcached
和 python-memcached
然后重新安装后者,版本 >= 1.58.
您需要将python-memcache
升级到最新版本,目前为1.58。
此包与您的 memcached 服务器交互以提取其收集的统计信息。该包的早期版本没有将传入的统计数据(特别是键)解码为 Python 3 str
类型(即 unicode),只是将 bytes
字符串传递给 memcached_status
prettyname
过滤器 - 假定一个 str
对象。
我为我的 django 项目(Django 1.11 和 Python 3.6)安装了 memcached。 当我将 memcached_status 添加到我在 settings.py 中安装的应用程序时,我在尝试打开 Django 管理页面时收到此错误:
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 状态。
已更新
我怀疑您还安装了 python3-memcached
(现已弃用,请参阅自述文件),在这种情况下,可能会覆盖您的 python-memcached
安装(现在支持 Python 2 & 3 ).如果是这样,您需要删除 python3-memcached
和 python-memcached
然后重新安装后者,版本 >= 1.58.
您需要将python-memcache
升级到最新版本,目前为1.58。
此包与您的 memcached 服务器交互以提取其收集的统计信息。该包的早期版本没有将传入的统计数据(特别是键)解码为 Python 3 str
类型(即 unicode),只是将 bytes
字符串传递给 memcached_status
prettyname
过滤器 - 假定一个 str
对象。