我正在尝试在全新的Mac上本地运行django项目。它一直工作到昨天,我不知道发生了什么,但突然间我开始得到Redis错误。
我可以加载不查询数据库的页面,但是一旦我尝试进行搜索(部分依赖于Redis),它就不起作用。
有什么想法吗?这是追溯。
Traceback (most recent call last):
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/wsgiref/handlers.py", line 85, in run
self.result = application(self.environ, self.start_response)
File "/Library/Python/2.7/site-packages/django/contrib/staticfiles/handlers.py", line 67, in __call__
return self.application(environ, start_response)
File "/Library/Python/2.7/site-packages/django/core/handlers/wsgi.py", line 241, in __call__
response = self.get_response(request)
File "/Library/Python/2.7/site-packages/django/core/handlers/base.py", line 179, in get_response
response = self.handle_uncaught_exception(request, resolver, sys.exc_info())
File "/Library/Python/2.7/site-packages/django/core/handlers/base.py", line 111, in get_response
response = callback(request, *callback_args, **callback_kwargs)
File "/Users/dlitwak/mozio/dotcloud/demo/search/views.py", line 391, in results
cache.setDistanceAndDuration(distance, time, request.user.username)
File "/Users/dlitwak/mozio/dotcloud/demo/cache.py", line 305, in setDistanceAndDuration
self.cache.set(key, value, 1800)
File "/Library/Python/2.7/site-packages/redis_cache/cache.py", line 218, in set
result = self._set(key, pickle.dumps(value), int(timeout), client, _add_only)
File "/Library/Python/2.7/site-packages/redis_cache/cache.py", line 199, in _set
return client.setex(key, value, timeout)
File "/Library/Python/2.7/site-packages/redis/client.py", line 1221, in setex
return self.execute_command('SETEX', name, time, value)
File "/Library/Python/2.7/site-packages/redis/client.py", line 338, in execute_command
connection.send_command(*args)
File "/Library/Python/2.7/site-packages/redis/connection.py", line 287, in send_command
self.send_packed_command(self.pack_command(*args))
File "/Library/Python/2.7/site-packages/redis/connection.py", line 269, in send_packed_command
self.connect()
File "/Library/Python/2.7/site-packages/redis/connection.py", line 217, in connect
raise ConnectionError(self._error_message(e))
ConnectionError: Error 2 connecting to unix socket: 127.0.0.1. No such file or directory.
我们正在运行MYSQL。我可以通过终端访问数据库,所以我认为这不是数据库访问问题。
答案 0 :(得分:0)
有时这是因为Django无法连接到数据库,而redis正在抛出错误。 因为你可以加载没有数据库的页面,看起来就像是这样。
答案 1 :(得分:0)
好的,所以我们终于开始工作了。
由于某些原因,Redis不再自动启动,并且不在后台运行。
我正在使用Mac,之前我在Ubuntu上运行时会自动执行此操作。解决方案是在一个单独的终端窗口中运行“redis-server”。
我们仍在试图弄清楚如何让它自动启动,或者为什么它首先停止,但是是的。
答案 2 :(得分:0)
如果您使用Mac,使用Homebrew软件包管理器可能是安装和管理Redis的最佳方式。简单地安装Homebrew后,在命令行上安装brew install redis
。
安装完成后,您可以将其设置为在启动时自动运行:
ln -sfv /usr/local/opts/redis/*.plist ~/Library/LaunchAgents
然后立即运行:
launchctl load ~/Library/LaunchAgents/homebrew.mxcl.redis.plist