O problema principal são cadeias de caracteres Unicode - você as tem em algum lugar, e a Duplicity (ou, pelo menos, a versão que você está usando possivelmente) não está configurada para manipular as cadeias de caracteres Unicode corretamente. Isso se deve às advertências do Python 2.
No Python 2, existem duas classes de tipo "string" separadas:
-
str
- Este é o codec padrão ASCII típico visto em muitos sistemas, e é mais ou menos apenas o padrão AZ, 0-9, alguns símbolos do conjunto de caracteres do teclado. -
unicode
- Esta é a codificação UTF-8, as codificações UTF-16, etc., que possuem um intervalo enorme de caracteres internacionais, emojis, etc.
O que quer que esteja sendo passado para Duplicity, neste caso, é provável que usemos um caractere dos conjuntos de caracteres UTF que esteja fora do intervalo de caracteres ASCII padrão. É por isso que obtemos um UnicodeDecodeError
no traceback - estamos tentando converter cadeias de caracteres Unicode em cadeias ASCII, e não podemos devido a caracteres estarem fora dos conjuntos de caracteres ASCII.
Eu sugeriria arquivar um bug no Duplicity para fazer uma anotação que eles não manipulam o Unicode corretamente, mas eu também verificaria quaisquer arquivos que Duplicity está manipulando e certifique-se de que você não possui nenhum caractere Unicode (ou controle secreto oculto) caracteres) nas cordas que está tentando trabalhar.
NOTA: De acordo com os bugs ligados, isso já está corrigido; É possível que isso tenha sido corrigido em uma versão posterior do Deja-Dup, mas não na versão que você está usando, caso em que você precisaria encontrar uma versão Backported ou Updated para contornar o erro. / p>
Em um dos bugs, uma solução alternativa para renomear nomes de arquivos com conjuntos de caracteres estrangeiros no conjunto Unicode deve ser renomeada para nomes de arquivos somente ASCII, para que o DejaDup os manipule apropriadamente. Essa é a única solução conhecida, com pouca atualização para uma versão mais recente do DejaDup.