星期六, 十二月 30, 2006

crablfs for python 2.3 on RH AS4

在 Red Hat AS4 上安装使用 crablfs 时,报告如下异常:
>>> def __user_compare(user1, user2):
... if user1[2] < user2[2]: return -1
... elif user1[2] > user2[2]: return 1
... else: return 0
...
>>> import grp
>>> groups = grp.getgrall()
>>> groups.sort(__user_compare, reverse=True)
Traceback (most recent call last):
File "", line 1, in ?
TypeError: sort() takes no keyword arguments
这是因为 python 2.3 和 python 2.4 的 list.sort() 不同,2.3 为:
>>> help(list.sort)
sort(...)
L.sort(cmpfunc=None) -- stable sort *IN PLACE*; cmpfunc(x, y) -> -1, 0, 1
没有 reverse 参数。将 __user_compare() 的比较方法调换,使用不带 reverse 参数的 grp/pwd.sort。

没有评论: