Pyinstaller-将资产包含在可执行文件中

时间:2016-04-11 17:14:37

标签: pyinstaller

无法弄清楚如何将自定义资源打包到我的可执行文件中,我发现了这一点信息https://groups.google.com/forum/#!msg/pyinstaller/HcTTyFlPJHA/kqd4wnm7JhkJ

我的资源文件夹包含tkinter GUI的图像," assets \ images.png"。想要包含在可执行文件中的东西。

所以我在.spec文件中的#34; a.datas,"下包含了这一行。

树('资产',前缀='资产\'),

然后用PyInstaller" pyinstaller.py MipMapper-V1.2 \ MipMapper-V1.2.spec"重新包装。这会生成一个没有包含资产的exe。我可以将assets文件夹复制到exe的目录,它可以工作。这是我的代码吗?它指的是"资产\"事物的相对路径。所以我得到-1返回错误。它无法找到资产。感谢您提前提供任何帮助。

1 个答案:

答案 0 :(得分:1)

Adding data files以及pyinstaller文档中的下一部分using data files from module

是的,您应该在代码中使用包相对路径而不是普通相对路径。因为包的提取不是相对于执行二进制文件,而是在temp dir中的某个地方。寻找pkg_resources包。例如这个函数:

dir = resource_filename('your_package', 'app/samples')

阐明如何在spec中定义数据,例如:

a = Analysis(['../trunk/__main__.py']
         ...
         datas=[('../src/trunk/your_package/app/samples/data.bin', 'your_package/app/samples')],
         ...
相关问题