Я установил rdiff-backup на свой пакет arch linux только для того, чтобы в результате появилась ошибка атрибута:
AttributeError: 'module' object has no attribute 'reduce'
Ошибка существует в одном из классов rdiff_backup, но я не могу определить ошибку. Функция reduce
должна быть встроенной, и я не могу получить код для поиска функции.
Код из rdiff выглядит следующим образом:
def get_total_dest_size_change(self):
"""Return total destination size change
This represents the total change in the size of the
rdiff-backup destination directory.
"""
addvals = [self.NewFileSize, self.ChangedSourceSize,
self.IncrementFileSize]
subtractvals = [self.DeletedFileSize, self.ChangedMirrorSize]
for val in addvals + subtractvals:
if val is None:
result = None
break
else:
def addlist(l): return reduce(lambda x,y: x+y, l)
result = addlist(addvals) - addlist(subtractvals)
self.TotalDestinationSizeChange = result
return result
И ошибка возникает в локальной функции addlist.
Я попытался импортировать встроенный модуль в верхней части файла (statistics.py), как
import __builtin__
и
from __builtin__ import reduce
и попытался изменить пространство имен метода следующим образом:
def addlist(l): return __builtin__.reduce(lambda x,y: x+y, l)
Но увы. Все та же ошибка.
До сих пор мне не удалось найти какую-либо хорошую информацию или решение, поэтому, возможно, кто-то с немного более глубокими познаниями в области python мог бы попробовать его.
Спасибо
м