2

我编写了一个 python 应用程序,它使用 pdfkit 包来打印 PDF。我正在使用 pyinstaller 在 Ubuntu 上构建此应用程序的可执行文件。pdfkit 依赖于在 /usr/bin/ 下使用 sudo apt install 安装的 wkhtmltopdf。

根据pyinstaller 文档,可以通过将每个二进制文件添加到 .spec 文件中的“二进制文件”列表来包含二进制文件。但是,这似乎不起作用。我还尝试在 pwd 中创建 wkhtmltopdf 的副本,并将文件添加到 .spec 文件中的“数据”列表中,但它不起作用。

如何将 /usr/bin/ 下的 wkhtmltopdf 二进制文件包含到我的包中,以便最终用户无需单独安装它?

4

1 回答 1

0

pyinstaller version 3.6, Ubuntu 18.04,但它也应该适用于 Windows。

我可以通过修改 .spec 文件来做到这一点。

制作规范文件:

pyi-makespec your_python_script.py

将创建一个名为 my_python_script.spec 的文件。使用文本编辑器打开它并从以下位置更改行二进制文件:

binaries=[],

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

换句话说,将 wkhtmltopdf 的路径放在 touple 的第一位。

然后运行以下命令来生成可执行文件:

pyinstaller your_python_script.spec

---稍微解释一下:

列表 [] 的每个元素都是一个元组,其中包含二进制文件的路径和最终可执行文件的相对路径作为元素。

于 2020-05-15T00:29:04.270 回答