无法弄清楚如何将自定义资源打包到我的可执行文件中,我发现了这一点信息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返回错误。它无法找到资产。感谢您提前提供任何帮助。
答案 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')],
...