簡體   English   中英

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。 當我在settings.py中將memcached_status添加到已安裝的應用程序中時,嘗試打開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存儲庫中,他們說我只需要在settings.py中將memchache_status添加到我已安裝的應用程序中,它將起作用。 有人遇到過同樣的問題嗎? 如果是,我應該如何為Django管理頁面正確安裝memchached狀態。

更新

我懷疑您還安裝了python3-memcached (現已棄用,請參閱README),在這種情況下,可能會覆蓋python-memcached安裝(現在支持Python 2和3)。 如果是這樣,則需要同時刪除python3-memcachedpython-memcached然后重新安裝后者,版本> = 1.58。


您需要將python-memcache升級到最新版本,當前為1.58。

該軟件包與您的Memcached服務器進行交互以提取其收集的統計信息。 該軟件包的早期版本沒有將傳入的統計數據(尤其是鍵)解碼為Python 3 str類型(即unicode),而只是將bytes字符串傳遞給memcached_status prettyname過濾器-假定為str對象。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM