Python ';str';不支持带有Memcached的缓冲区接口

Python ';str';不支持带有Memcached的缓冲区接口,python,django,caching,memcached,python-memcached,Python,Django,Caching,Memcached,Python Memcached,我正在使用django 1.7和python3.4。我最近安装了Memcached,并尝试将其与python Memcached按站点缓存一起使用。但是,一旦我在settings.py中定义了默认缓存后端,我的应用程序就会停止工作,并抛出以下错误: 'str' does not support the buffer interface 已安装的中间件和回溯是: Installed Middleware: ('debug_toolbar.middleware.DebugToolbarMiddle

我正在使用django 1.7和python3.4。我最近安装了Memcached,并尝试将其与python Memcached按站点缓存一起使用。但是,一旦我在settings.py中定义了默认缓存后端,我的应用程序就会停止工作,并抛出以下错误:

'str' does not support the buffer interface
已安装的中间件和回溯是:

Installed Middleware:
('debug_toolbar.middleware.DebugToolbarMiddleware',
 'django.contrib.sessions.middleware.SessionMiddleware',
 'django.middleware.common.CommonMiddleware',
 'django.middleware.csrf.CsrfViewMiddleware',
 'django.contrib.auth.middleware.AuthenticationMiddleware',
 'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
 'django.contrib.messages.middleware.MessageMiddleware',
 'django.middleware.clickjacking.XFrameOptionsMiddleware',
 'django.middleware.cache.UpdateCacheMiddleware',
 'django.middleware.common.CommonMiddleware',
 'django.middleware.cache.FetchFromCacheMiddleware')


Traceback:
File "C:\Python34\lib\site-packages\django\core\handlers\base.py" in get_response
  87.                 response = middleware_method(request)
File "C:\Python34\lib\site-packages\django\middleware\cache.py" in process_request
  148.         cache_key = get_cache_key(request, self.key_prefix, 'GET', cache=self.cache)
File "C:\Python34\lib\site-packages\django\utils\cache.py" in get_cache_key
  223.     headerlist = cache.get(cache_key, None)
File "C:\Python34\lib\site-packages\django\core\cache\backends\memcached.py" in get
  82.         val = self._cache.get(key)
File "C:\Python34\lib\site-packages\memcache.py" in get
  1002.         return self._get('get', key)
File "C:\Python34\lib\site-packages\memcache.py" in _get
  986.             return _unsafe_get()
File "C:\Python34\lib\site-packages\memcache.py" in _unsafe_get
  957.                 server.send_cmd("%s %s" % (cmd, key))
File "C:\Python34\lib\site-packages\memcache.py" in send_cmd
  1299.         self.socket.sendall(cmd + '\r\n')

Exception Type: TypeError at /ask/
Exception Value: 'str' does not support the buffer interface
请告诉我问题和解决办法。python memcache绑定不适用于python3.4吗更新: 这个答案已经过时了。请检查一下电话号码。 徖

python memcached库与python 3.4不兼容。也不支持python3

是纯python memcache客户端实现的过时/未维护的python3端口

在大多数情况下,Redis被认为是memcacahed的更好替代品。支持python3。

pylibmc实际上似乎非常支持python3和Django。在与不同模块进行了一点斗争之后,我刚刚成功地迁移到基于pylibmc的设置,使用:

sudo apt get安装libmemcached dev
pip安装pylibmc
pip安装django pylibmc

Django缓存配置中有一个更改,以使用新模块:

缓存={
“默认值”:{
'BACKEND':'django.core.cache.backends.memcached.pylibmcache',
“位置”:“127.0.0.1.11211”,
}
}
Python3下的所有内容:

uwsgi套接字0绑定到TCP地址127.0.0.1:9090 fd 3
Python版本:3.4.0(默认值,2015年6月19日,14:24:19)[GCC 4.8.2]

在我的例子中,将python memcached更新到1.59版解决了这个问题。这适用于python3.4和Django 1.11。

那么,在这种情况下,可能的解决方案是什么呢。我是否应该使用另一个绑定或转换到redis或其他什么东西pylibmc和django pylibmc是今天(2015年12月24日)的解决方案,python memcached似乎仍处于崩溃状态-在最小的Debian/Ubuntu中,您还需要安装包“libz-dev”。如果您使用的是核心pylibmc后端,是否需要django pylibmc?