На Ubuntu 17.10 Резервное приложение перестало работать с этой ошибкой:
Traceback (most recent call last):
File "/usr/bin/duplicity", line 1546, in <module>
with_tempdir(main)
File "/usr/bin/duplicity", line 1540, in with_tempdir
fn()
File "/usr/bin/duplicity", line 1391, in main
do_backup(action)
File "/usr/bin/duplicity", line 1416, in do_backup
globals.archive_dir).set_values()
TypeError: __init__() takes exactly 4 arguments (3 given)
Я думаю, что это могло бы быть проблемой Python 2/3, но кажется, что у других пользователей на 17,10 есть работа deja-дубликата.
Я попытался переустановить deja-дубликат и двуличность, ту же проблему.
Версия двуличности: 0.7.12-1ubuntu1
Версия Deja-дубликата: 36.3-0ubuntu0.1
Редактирования:
Я подозревал, что по некоторым причинам Двуличность не была передающей self
к классу, но в коде незаконная строка:
col_stats = collections.CollectionsStatus(globals.backend,
globals.archive_dir).set_values()
Подразумевать, что это - вероятно, не ошибка версии Python, потому что это действительно передавало три аргумента классу.
Теперь в CollectionsStatus
класс, справка говорит:
Help on class CollectionsStatus in module duplicity.collections:
class CollectionsStatus
| Hold information about available chains and sets
|
| Methods defined here:
|
| __init__(self, backend, archive_dir, action)
| Make new object. Does not set values
Подразумевать, что это должно определенно передавать 4 аргумента, включая self
.
У меня есть чувство, что я знаю то, что идет не так, как надо. Я часто использую сценарий для обновления всех моих модулей Python, таким образом, я держал пари, что класс был изменен где-нибудь вдоль строки, и версиям Двуличности (сценарий оболочки) и его модуль Python не соответствуют.
По-видимому, у меня были модуль Duplicity Python 0.7.14 и пакет способности 0.7.12. Я использовал sudo pip uninistall duplicity
, сопровождаемый sudo aptitude reinstall duplicity
и проблема решила.
Я предполагаю, что не должен обновлять все свои модули Python сразу.