Python 3.x 假redis中没有名为“lupa”的模块
当我从lib使用lock.release时,我得到了以下异常:Python 3.x 假redis中没有名为“lupa”的模块,python-3.x,fakeredis,Python 3.x,Fakeredis,当我从lib使用lock.release时,我得到了以下异常: File "/usr/local/lib/python3.6/site-packages/redis/lock.py", line 111, in acquire if self.do_acquire(token): File "/usr/local/lib/python3.6/site-packages/redis/lock.py", line 258, in do_acquire client=s
File "/usr/local/lib/python3.6/site-packages/redis/lock.py", line 111, in acquire
if self.do_acquire(token):
File "/usr/local/lib/python3.6/site-packages/redis/lock.py", line 258, in do_acquire
client=self.redis))
File "/usr/local/lib/python3.6/site-packages/redis/client.py", line 2950, in __call__
return client.evalsha(self.sha, len(keys), *args)
File "/usr/local/lib/python3.6/site-packages/redis/client.py", line 2079, in evalsha
return self.execute_command('EVALSHA', sha, numkeys, *keys_and_args)
File "/usr/local/lib/python3.6/site-packages/redis/client.py", line 667, in execute_command
connection.send_command(*args)
File "/usr/local/lib/python3.6/site-packages/redis/connection.py", line 610, in send_command
self.send_packed_command(self.pack_command(*args))
File "/usr/local/lib/python3.6/site-packages/redis/connection.py", line 590, in send_packed_command
self._sock.sendall(item)
File "/usr/local/lib/python3.6/site-packages/fakeredis/_server.py", line 808, in sendall
self._parser.send(data)
File "/usr/local/lib/python3.6/site-packages/fakeredis/_server.py", line 725, in _parse_commands
self._process_command(fields)
File "/usr/local/lib/python3.6/site-packages/fakeredis/_server.py", line 827, in _process_command
result = self._run_command(func, sig, fields[1:], False)
File "/usr/local/lib/python3.6/site-packages/fakeredis/_server.py", line 741, in _run_command
result = func(*args)
File "/usr/local/lib/python3.6/site-packages/fakeredis/_server.py", line 2439, in evalsha
return self.eval(script, numkeys, *keys_and_args)
File "/usr/local/lib/python3.6/site-packages/fakeredis/_server.py", line 2386, in eval
from lupa import LuaRuntime, LuaError, as_attrgetter
No module named 'lupa'
到目前为止,我还没有发现类似的问题,所以我只想为那些未来将面临这一例外的人分享解决方案
如报告中所述
虽然fakeredis是纯Python,但如果您想运行Lua脚本,则需要lupa,这包括在Lua中实现的redis.lock.lock等功能。如果您使用pip install fakeredis[lua]安装fakeredis,它将自动安装
因此:
如报告中所述
虽然fakeredis是纯Python,但如果您想运行Lua脚本,则需要lupa,这包括在Lua中实现的redis.lock.lock等功能。如果您使用pip install fakeredis[lua]安装fakeredis,它将自动安装
因此:
pip install fakeredis[lua]