Почему lottie выдает ошибку ImportError: cannot import name 'PngRenderer' from 'lottie.exporters.cairo'?

Рейтинг: 1Ответов: 1Опубликовано: 14.02.2023

Пытаюсь конвертировать .tgs стикер в gif, используй lottie:

from lottie.exporters.gif import export_gif
from lottie.parsers.tgs import parse_tgs
import logging
def convert_tgs_to_gif(tgs_file, gif_file):

    try:
        animation = parse_tgs(tgs_file)


        export_gif(animation, gif_file, skip_frames=5, dpi=48)
        return True
    except Exception:
        logging.exception("Error occurred while converting TGS to GIF.")
        return False

выдает следующую ошибку:

ImportError: cannot import name 'PngRenderer' from 'lottie.exporters.cairo'

Пробовал импортировать библиотеку целиком, импортировать PngRenderer, ничего не помогло (Поставил тег json потому что .tgs, по той информации что я загуглил это просто json, но как то хитро сжатый)

Ответы

▲ 1Принят

Я разобрался в этом сложном вопросе. В данной библиотеке ещё не настроенно адекватное отображение ошибок. Здесь проблема в совершенно другой библиотеке. Для работы PngRenderer требуется библиотека cairosvg. А для нормальной работы на windows ему требуется libcairo-2.dll. Следовательно, решение данной проблемы: правильная установка cairosvg.

Ответ с английского StackOverflow по установке cairosvg