我已经编写了一个python应用程序,该应用程序使用pdfkit软件包来打印PDF。我正在使用pyinstaller在Ubuntu上构建此应用程序的可执行文件。 pdfkit取决于在/ usr / bin /下使用sudo apt install安装的wkhtmltopdf。
根据pyinstaller documentation二进制文件,可以通过将每个二进制文件添加到.spec文件中的“ binaries”列表中来包括。但是,这似乎不起作用。我还尝试在pwd中创建wkhtmltopdf的副本,并将该文件添加到.spec文件中的“数据”列表中,但不起作用。
如何将/ usr / bin /下的wkhtmltopdf二进制文件包含到我的软件包中,以便最终用户无需单独安装它?
答案 0 :(得分: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的路径放在touple的第一位。
然后运行以下命令制作可执行文件:
pyinstaller your_python_script.spec
---有点解释:
列表[]的每个元素都是一个元组,其中包含二进制文件的路径和最终可执行文件的相对路径作为元素。