arch Linux ボックスに rdiff-backup をインストールしたところ、属性エラーが発生しました。
AttributeError: 'module' object has no attribute 'reduce'
エラーは rdiff_backup クラスの 1 つに存在しますが、エラーを特定できません。関数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 についてもう少し詳しい知識を持っている人がそれに挑戦できるかもしれません。
ありがとうございます