Как включить wkhtmltopdf с pyinstaller

Я написал приложение на python, которое использует пакет pdfkit для печати PDF-файлов. Я использую pyinstaller для сборки исполняемого файла этого приложения на Ubuntu. pdfkit зависит от wkhtmltopdf, установленного с помощью sudo apt install в /usr/bin/.

В соответствии с документацией pyinstaller двоичные файлы могут быть включены путем добавления каждого двоичного файла в список "binaries" в файле.spec. Однако это не похоже на работу. Я также попытался создать копию wkhtmltopdf в pwd и добавил файл в список "datas" в файле.spec, но это не сработало.

Как я могу включить двоичный файл wkhtmltopdf в / usr / bin / в свой пакет, чтобы конечному пользователю не нужно было устанавливать его отдельно?

0 ответов

pyinstaller версии 3.6, Ubuntu 18.04, но он также должен работать с Windows.

Я смог сделать это, изменив файл.spec.

Чтобы создать файл спецификации:

pyi-makespec your_python_script.py

Будет создан файл с именем my_python_script.spec. Откройте его в текстовом редакторе и измените двоичные файлы строк с:

binaries=[],

к

binaries=[('/usr/bin/wkhtmltopdf','.')],

Другими словами, поместите путь к wkhtmltopdf на первое место в списке.

Затем запустите следующее, чтобы сделать исполняемый файл:

pyinstaller your_python_script.spec

--- Немного поясняю:

Каждый элемент списка [] представляет собой кортеж, содержащий в качестве элементов путь к двоичному файлу и относительный путь к окончательному исполняемому файлу.

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