Ошибка дублирования, связанная с python?

Итак, у меня есть эта ошибка, которая, по-видимому, является известной проблемой. Я ищу работу, пока не будет исправлено, потому что я не могу позволить себе без системного резервного копирования.

Traceback (most recent call last): File "/usr/bin/duplicity", line 1532, in <module> with_tempdir(main) File "/usr/bin/duplicity", line 1526, in with_tempdir fn() File "/usr/bin/duplicity", line 1380, in main do_backup(action) File "/usr/bin/duplicity", line 1401, in do_backup sync_archive(decrypt) File "/usr/bin/duplicity", line 1139, in sync_archive remote_metafiles, ignored, rem_needpass = get_metafiles(remlist) File "/usr/bin/duplicity", line 1029, in get_metafiles pr = file_naming.parse(fn) File "/usr/lib/python2.7/dist-packages/duplicity/file_naming.py", line 400, in parse pr = check_inc() File "/usr/lib/python2.7/dist-packages/duplicity/file_naming.py", line 340, in check_inc t1 = str2time((m1 or m2).group("start_time"), short) File "/usr/lib/python2.7/dist-packages/duplicity/file_naming.py", line 290, in str2time t = dup_time.genstrtotime(timestr.upper()) File "/usr/lib/python2.7/dist-packages/duplicity/dup_time.py", line 295, in genstrtotime return override_curtime - intstringtoseconds(timestr) File "/usr/lib/python2.7/dist-packages/duplicity/dup_time.py", line 203, in intstringtoseconds error() File "/usr/lib/python2.7/dist-packages/duplicity/dup_time.py", line 194, in error raise TimeException(bad_interval_string % interval_string) UnicodeDecodeError: 'ascii' codec can't decode byte 0xe3 in position 0: ordinal not in range(128)

Связанные проблемы:

https://bugs.launchpad.net/ubuntu/+source/deja-dup/+bug/1377873 https://bugs.launchpad.net/ubuntu/+source/deja-dup/+bug/1422289 https://stackoverflow.com/questions/9644099/python-ascii-codec-cant-decode-byte
2
задан 23 May 2017 в 15:39

8 ответов

Основная проблема - строки Unicode - у вас их есть где-то, а Duplicity (или, по крайней мере, версия, которую вы используете) не настроена для правильной обработки строк Unicode. Это связано с предостережениями Python 2.

В Python 2 существуют два отдельных класса типа «string»:

str - Это является типичным стандартным кодеком ASCII, который наблюдается во многих системах, и является более или менее стандартным AZ, 0-9, некоторыми символами из набора символов клавиатуры. unicode - Это кодировка UTF-8, кодировки UTF-16 и т. д., которые имеют огромный диапазон международных символов, emojis и т. д.

Что бы ни передавалось в Duplicity, в этом case, мы, скорее всего, будем использовать символ из кодировок UTF, который находится за пределами стандартного набора символов ASCII. Вот почему мы получаем UnicodeDecodeError в трассировке - мы пытаемся преобразовать строки Unicode в строки ASCII, и мы не можем из-за того, что символы находятся за пределами наборов символов ASCII.

[!d10 ]

Я бы предложил записать ошибку в Duplicity, чтобы сделать заметку о том, что они не обрабатывают Юникод должным образом, но я также посмотрел бы на все файлы, которые использует Duplicity, и убедитесь, что у вас нет символов Unicode (или скрытых секретных управляющие символы) в строках, с которыми он пытается работать.

ПРИМЕЧАНИЕ. В соответствии с связанными ошибками это уже исправлено; возможно, это было исправлено в более поздней версии Deja-Dup, но не в той версии, которую вы используете, и в этом случае вам нужно будет найти версию Backported или Update, чтобы обойти эту ошибку. В одной из ошибок обходное решение для переименования имен файлов с иностранными наборами символов в наборе Unicode должно быть переименовано в имена файлов только для ASCII, для того чтобы DejaDup правильно их обрабатывал. Это единственное известное обходное решение, не связанное с обновлением до новой версии DejaDup.
4
ответ дан 22 May 2018 в 23:53
  • 1
    По-видимому, уже есть один. – user447607 7 April 2017 в 22:53
  • 2
    @ user447607 Тогда все, что вы можете сделать, это ждать - я бы поделился ссылкой, здесь, в комментарии, хотя мы можем ссылаться на существующую ошибку в этом ответе, если люди хотят проверить статус этой ошибки. (Обратите внимание, что если это была программа Python 3, ошибка не существовала бы, потому что str по умолчанию Unicode в Python 3, а не отдельный класс типа переменной unicode.) – Thomas Ward♦ 7 April 2017 в 22:55
  • 3
    Вместо этого я переписал просьбу о работе. Бизнес по-прежнему должен быть сделан, если это возможно. – user447607 7 April 2017 в 22:59
  • 4
    @ user447607 Обходным путем является переименование вещей с символами unicode в имена файлов, отличных от Unicode, - таким образом, вы не нажмете на ошибку декодирования. Я добавил это к моему ответу. – Thomas Ward♦ 7 April 2017 в 23:00
  • 5
    Что "вещи" ? Имена файлов? AFIK, их нет. Я не говорю по-немецки. Музыка - одна из возможностей, но она исключена из этой резервной копии, потому что я обрабатываю ее в другом месте. – user447607 7 April 2017 в 23:01

Основная проблема - строки Unicode - у вас их есть где-то, а Duplicity (или, по крайней мере, версия, которую вы используете) не настроена для правильной обработки строк Unicode. Это связано с предостережениями Python 2.

В Python 2 существуют два отдельных класса типа «string»:

str - Это является типичным стандартным кодеком ASCII, который наблюдается во многих системах, и является более или менее стандартным AZ, 0-9, некоторыми символами из набора символов клавиатуры. unicode - Это кодировка UTF-8, кодировки UTF-16 и т. д., которые имеют огромный диапазон международных символов, emojis и т. д.

Что бы ни передавалось в Duplicity, в этом case, мы, скорее всего, будем использовать символ из кодировок UTF, который находится за пределами стандартного набора символов ASCII. Вот почему мы получаем UnicodeDecodeError в трассировке - мы пытаемся преобразовать строки Unicode в строки ASCII, и мы не можем из-за того, что символы находятся за пределами наборов символов ASCII.

Я бы предложил записать ошибку в Duplicity, чтобы сделать заметку о том, что они не обрабатывают Юникод должным образом, но я также посмотрел бы на все файлы, которые использует Duplicity, и убедитесь, что у вас нет символов Unicode (или скрытых секретных управляющие символы) в строках, с которыми он пытается работать.

ПРИМЕЧАНИЕ. В соответствии с связанными ошибками это уже исправлено; возможно, это было исправлено в более поздней версии Deja-Dup, но не в той версии, которую вы используете, и в этом случае вам нужно будет найти версию Backported или Update, чтобы обойти эту ошибку. В одной из ошибок обходное решение для переименования имен файлов с иностранными наборами символов в наборе Unicode должно быть переименовано в имена файлов только для ASCII, для того чтобы DejaDup правильно их обрабатывал. Это единственное известное обходное решение, не связанное с обновлением до новой версии DejaDup.
4
ответ дан 18 July 2018 в 15:22

Основная проблема - строки Unicode - у вас их есть где-то, а Duplicity (или, по крайней мере, версия, которую вы используете) не настроена для правильной обработки строк Unicode. Это связано с предостережениями Python 2.

В Python 2 существуют два отдельных класса типа «string»:

str - Это является типичным стандартным кодеком ASCII, который наблюдается во многих системах, и является более или менее стандартным AZ, 0-9, некоторыми символами из набора символов клавиатуры. unicode - Это кодировка UTF-8, кодировки UTF-16 и т. д., которые имеют огромный диапазон международных символов, emojis и т. д.

Что бы ни передавалось в Duplicity, в этом case, мы, скорее всего, будем использовать символ из кодировок UTF, который находится за пределами стандартного набора символов ASCII. Вот почему мы получаем UnicodeDecodeError в трассировке - мы пытаемся преобразовать строки Unicode в строки ASCII, и мы не можем из-за того, что символы находятся за пределами наборов символов ASCII.

Я бы предложил записать ошибку в Duplicity, чтобы сделать заметку о том, что они не обрабатывают Юникод должным образом, но я также посмотрел бы на все файлы, которые использует Duplicity, и убедитесь, что у вас нет символов Unicode (или скрытых секретных управляющие символы) в строках, с которыми он пытается работать.

ПРИМЕЧАНИЕ. В соответствии с связанными ошибками это уже исправлено; возможно, это было исправлено в более поздней версии Deja-Dup, но не в той версии, которую вы используете, и в этом случае вам нужно будет найти версию Backported или Update, чтобы обойти эту ошибку. В одной из ошибок обходное решение для переименования имен файлов с иностранными наборами символов в наборе Unicode должно быть переименовано в имена файлов только для ASCII, для того чтобы DejaDup правильно их обрабатывал. Это единственное известное обходное решение, не связанное с обновлением до новой версии DejaDup.
4
ответ дан 24 July 2018 в 20:37

Основная проблема - строки Unicode - у вас их есть где-то, а Duplicity (или, по крайней мере, версия, которую вы используете) не настроена для правильной обработки строк Unicode. Это связано с предостережениями Python 2.

В Python 2 существуют два отдельных класса типа «string»:

str - Это является типичным стандартным кодеком ASCII, который наблюдается во многих системах, и является более или менее стандартным AZ, 0-9, некоторыми символами из набора символов клавиатуры. unicode - Это кодировка UTF-8, кодировки UTF-16 и т. д., которые имеют огромный диапазон международных символов, emojis и т. д.

Что бы ни передавалось в Duplicity, в этом case, мы, скорее всего, будем использовать символ из кодировок UTF, который находится за пределами стандартного набора символов ASCII. Вот почему мы получаем UnicodeDecodeError в трассировке - мы пытаемся преобразовать строки Unicode в строки ASCII, и мы не можем из-за того, что символы находятся за пределами наборов символов ASCII.

Я бы предложил записать ошибку в Duplicity, чтобы сделать заметку о том, что они не обрабатывают Юникод должным образом, но я также посмотрел бы на все файлы, которые использует Duplicity, и убедитесь, что у вас нет символов Unicode (или скрытых секретных управляющие символы) в строках, с которыми он пытается работать.

ПРИМЕЧАНИЕ. В соответствии с связанными ошибками это уже исправлено; возможно, это было исправлено в более поздней версии Deja-Dup, но не в той версии, которую вы используете, и в этом случае вам нужно будет найти версию Backported или Update, чтобы обойти эту ошибку. В одной из ошибок обходное решение для переименования имен файлов с иностранными наборами символов в наборе Unicode должно быть переименовано в имена файлов только для ASCII, для того чтобы DejaDup правильно их обрабатывал. Это единственное известное обходное решение, не связанное с обновлением до новой версии DejaDup.
4
ответ дан 31 July 2018 в 23:38

Убедитесь, что вы используете последнюю версию 0.7.12, так как в этом отношении были некоторые улучшения.

Похоже, двуличность пытается повысить значение TimeException, но натыкается на печать перевода ошибки. [!d1 ]

В текущем обходном пути следует установить LC_ALL env var для запрета перевода двуличности и использования английских строк по умолчанию. Либо экспортируйте настройку, либо поставьте ее перед вызовом двуличности, например

LC_ALL=C duplicity ...

Это, конечно, не решит ошибку, но, по крайней мере, покажет, что вызвана ошибкой (TimeException).

.. ede / duply.net

0
ответ дан 22 May 2018 в 23:53
  • 1
    Неа. Ошибка с другой ошибкой. Будет перезапуск и двойная проверка. – user447607 9 April 2017 в 20:08
  • 2
    Я посмотрел на ярлык, а фактическая команда - «deja-dup -backup». – user447607 9 April 2017 в 20:12

Убедитесь, что вы используете последнюю версию 0.7.12, так как в этом отношении были некоторые улучшения.

Похоже, двуличность пытается повысить значение TimeException, но натыкается на печать перевода ошибки.

В текущем обходном пути следует установить LC_ALL env var для запрета перевода двуличности и использования английских строк по умолчанию. Либо экспортируйте настройку, либо поставьте ее перед вызовом двуличности, например

LC_ALL=C duplicity ...

Это, конечно, не решит ошибку, но, по крайней мере, покажет, что вызвана ошибкой (TimeException).

.. ede / duply.net

0
ответ дан 18 July 2018 в 15:22

Убедитесь, что вы используете последнюю версию 0.7.12, так как в этом отношении были некоторые улучшения.

Похоже, двуличность пытается повысить значение TimeException, но натыкается на печать перевода ошибки.

В текущем обходном пути следует установить LC_ALL env var для запрета перевода двуличности и использования английских строк по умолчанию. Либо экспортируйте настройку, либо поставьте ее перед вызовом двуличности, например

LC_ALL=C duplicity ...

Это, конечно, не решит ошибку, но, по крайней мере, покажет, что вызвана ошибкой (TimeException).

.. ede / duply.net

0
ответ дан 24 July 2018 в 20:37
  • 1
    Неа. Ошибка с другой ошибкой. Будет перезапуск и двойная проверка. – user447607 9 April 2017 в 20:08
  • 2
    Я посмотрел на ярлык, а фактическая команда - «deja-dup -backup». – user447607 9 April 2017 в 20:12

Убедитесь, что вы используете последнюю версию 0.7.12, так как в этом отношении были некоторые улучшения.

Похоже, двуличность пытается повысить значение TimeException, но натыкается на печать перевода ошибки.

В текущем обходном пути следует установить LC_ALL env var для запрета перевода двуличности и использования английских строк по умолчанию. Либо экспортируйте настройку, либо поставьте ее перед вызовом двуличности, например

LC_ALL=C duplicity ...

Это, конечно, не решит ошибку, но, по крайней мере, покажет, что вызвана ошибкой (TimeException).

.. ede / duply.net

0
ответ дан 31 July 2018 в 23:38
  • 1
    Неа. Ошибка с другой ошибкой. Будет перезапуск и двойная проверка. – user447607 9 April 2017 в 20:08
  • 2
    Я просмотрел ярлык, и фактическая команда - «deja-dup -backup». – user447607 9 April 2017 в 20:12

Другие вопросы по тегам:

Похожие вопросы: