Установка Pango / Cairo в Windows 10, x64

Пытаюсь установить WeasyPrint. Я использую Windows 10, 64 бит. Я следил за руководством по установке на их веб-сайте. Обратите внимание, что я новичок в этом. Я провел последние два дня, пытаясь установить pango и cairo, читал все сообщения в Интернете об этом, но не мог понять. Пока что я установил:

  • Python 3.6.3
  • CFFI
  • html5lib
  • Cairocffi
  • tinycss2
  • cssselect2
  • cairosvg
  • пифен
  • pdfrw
  • пип
  • шоколадный (вместо HomeBrew)
  • GTK3
  • Инструменты сборки Visual C ++

Проблема в том, что я не могу добраться до Каира и Панго.

Библиотеки на странице загрузки pango связаны неправильно.

Я установил Cairo по ссылке на их веб-сайте GTK +. В инструкциях указан вариант только для Win32. Я безуспешно пытался установить его.

Цель состоит в том, чтобы запустить WeasyPrint. Мне удалось его установить, но он не работает, так как не установлены Pango / Cairo.


person Jasper    schedule 03.11.2017    source источник


Ответы (2)


Это обычная проблема, с которой я столкнулся. Если после установки cairo рекомендуемым способом (GTK +) ошибка по-прежнему возникает, и вы уверены, что библиотеки DLL находятся в пути к среде, проблема, скорее всего, связана с конфликтом драйверов.

Cairo зависит от наличия некоторых конкретных dll, но драйверы Intel Wi-Fi обычно используют одни и те же драйверы, но с другой версией, это приводит к тому, что cairo не обнаруживает правильные функции в dll, потому что он обращается к неправильной dll.

Чтобы решить эту проблему, я обычно использую Dependency Walker, а затем открываю dll Cairo, где установлен gtk, и нахожу пути, по которым библиотеки присутствуют в этом Cairo. Я делаю это, нахожу имя библиотеки в Dependency walker и затем набираю его в строке поиска окна. Дайте ему несколько секунд, чтобы найти DLL, а затем щелкните ее правой кнопкой мыши и выберите «Открыть расположение файла». Если файл находится в другом каталоге, чем тот, в котором установлен gtk, и если в каталоге gtk есть dll с тем же именем, удалите или переименуйте его.

Возможно, вам понадобится сделать это с помощью пары DLL.

ВНИМАНИЕ: это может привести к нарушению некоторых функций программ, из которых вы удаляете dll.

P.S. Не используйте weasyprint. Я узнал это на собственном горьком опыте.

person Ruan Steenkamp    schedule 16.02.2018
comment
Есть ли альтернатива, кроме Weasyprint, для создания многостраничных отчетов в формате pdf в бэкэнде? - person Naseef Ummer; 01.09.2019

Я также использую 64-разрядную версию Windows 10. У вас может быть та же проблема, что и у меня. Cairo et al. установлен, но из-за DLL Hell он не загружается правильно из-за конфликтующей версии одной из его зависимостей, установленной в другом месте вашей системы.

Я начал с инструкций по установке WeasyPrint для Windows. Одного этого было недостаточно. Мне также пришлось изменить мою PATH переменную чтобы папка GTK (C:\Program Files\GTK3-Runtime Win64\bin, если вы следуете инструкциям) была выше в списке. После этого я перезапустился, и WeasyPrint работал нормально.

person drhagen    schedule 22.06.2018