Redis 的 Python 客户端的 zincrby 的参数顺序在 redis-py 3 里改了。
在 redis-py 2 里是:
def zincrby(self, name, value, amount=1):
在 redis-py 3 里是:
def zincrby(self, name, amount, value):
具体的改动是这个 commit:
https://github.com/andymccurdy/redis-py/commit/a750c7946d41862a38955c35b6928f098911c406
本来觉得这种基础库上不太可能发生这种事情,直到今天在用 Docker 搭一个新开发环境的时候……
如果要同时兼容两种情况的话,可以这样做:
import redis
print(redis.VERSION)
redis.VERSION 里的第一个元素就是大版本号。