【问题标题】:How to include wkhtmltopdf with pyinstaller如何在 pyinstaller 中包含 wkhtmltopdf
【发布时间】:2018-08-21 04:29:27
【问题描述】:
我编写了一个 python 应用程序,它使用 pdfkit 包来打印 PDF。我正在使用 pyinstaller 在 Ubuntu 上构建此应用程序的可执行文件。 pdfkit 依赖于 /usr/bin/ 下使用 sudo apt install 安装的 wkhtmltopdf。
根据pyinstaller documentation,可以通过将每个二进制文件添加到 .spec 文件中的“二进制文件”列表来包含二进制文件。但是,这似乎不起作用。我还尝试在 pwd 中创建 wkhtmltopdf 的副本,并将文件添加到 .spec 文件中的“数据”列表中,但它不起作用。
如何将 /usr/bin/ 下的 wkhtmltopdf 二进制文件包含到我的包中,以便最终用户无需单独安装?
【问题讨论】:
标签:
pyinstaller
wkhtmltopdf
python-pdfkit
【解决方案1】:
pyinstaller 版本 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
---稍微解释一下:
列表 [] 的每个元素都是一个元组,其中包含二进制文件的路径和最终可执行文件的相对路径作为元素。
【讨论】:
-
-
您确定wkhtmltopdf 是问题所在吗?我不确定这是否相关,但pandas 1.0.3 似乎与 pyinstaller 有问题。 Reference