Sur Ubuntu 17.10, l'application Backups échoue avec cette erreur:
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)
Je pense que cela pourrait être un problème de Python 2/3, mais il semble que d'autres utilisateurs de 17.10 utilisent déjà deja-dup.
J'ai essayé de réinstaller deja-dup et duplicity, même problème.
Version duplicata: 0.7.12-1ubuntu1
Deja-dup version: 36.3-0ubuntu0.1
Edits:
Je soupçonnais que, pour une raison quelconque, Duplicity ne passait pas self
à la classe, mais dans le code, la ligne incriminée est la suivante:
col_stats = collections.CollectionsStatus(globals.backend,
globals.archive_dir).set_values()
Ce qui signifie que ce n'est probablement pas une erreur de version Python car elle a bien passé trois arguments à la classe.
Maintenant, dans la classe CollectionsStatus
, l'aide indique:
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
Ce qui signifie qu'il faut absolument passer 4 arguments, dont self
.
J'ai le sentiment de savoir ce qui ne va pas. J'utilise souvent un script pour mettre à jour tous mes modules Python. Je parie donc que la classe a été modifiée quelque part dans la ligne et que les versions de Duplicity (le script shell) et de son module Python sont incompatibles.
Apparemment, j'avais Duplicity Python module 0.7.14 et le paquetage aptitude 0.7.12. J'ai utilisé Sudo pip uninistall duplicity
, suivi de Sudo aptitude reinstall duplicity
et le problème est résolu.
Je suppose que je ne devrais pas mettre à jour tous mes Python modules à la fois.