Pyinstaller- 在可执行文件中包含资产
Pyinstaller- Including assets in executable
无法弄清楚如何将自定义资源打包到我的可执行文件中,我找到了一些信息,https://groups.google.com/forum/#!msg/pyinstaller/HcTTyFlPJHA/kqd4wnm7JhkJ
我的资产文件夹包含 tkinter GUI 的图像,"assets\images.png"。 id 喜欢包含在可执行文件本身中的东西。
所以我在我的 .spec 文件中 "a.datas," 下包含了这一行。
树('assets',前缀='assets\'),
然后用 PyInstaller 重新打包 "pyinstaller.py MipMapper-V1.2\MipMapper-V1.2.spec"。这会生成一个不包含资产的 exe。我可以将资产文件夹复制到 exe 的目录并且它可以工作。是我的代码吗?它指的是 "assets\" 事物的相对路径。所以我得到一个 -1 return 错误。它找不到资产。提前感谢您的帮助。
Adding data files and next section using data files from module 在 pyinstaller 文档中。
是的,您应该在代码中使用包相对路径而不是普通相对路径。因为包将被提取而不是相对于执行二进制文件,而是在临时目录中的某个地方。寻找 pkg_resources
包。例如这个函数:
dir = resource_filename('your_package', 'app/samples')
要阐明如何在规范中定义数据,请查看示例:
a = Analysis(['../trunk/__main__.py']
...
datas=[('../src/trunk/your_package/app/samples/data.bin', 'your_package/app/samples')],
...
无法弄清楚如何将自定义资源打包到我的可执行文件中,我找到了一些信息,https://groups.google.com/forum/#!msg/pyinstaller/HcTTyFlPJHA/kqd4wnm7JhkJ
我的资产文件夹包含 tkinter GUI 的图像,"assets\images.png"。 id 喜欢包含在可执行文件本身中的东西。
所以我在我的 .spec 文件中 "a.datas," 下包含了这一行。
树('assets',前缀='assets\'),
然后用 PyInstaller 重新打包 "pyinstaller.py MipMapper-V1.2\MipMapper-V1.2.spec"。这会生成一个不包含资产的 exe。我可以将资产文件夹复制到 exe 的目录并且它可以工作。是我的代码吗?它指的是 "assets\" 事物的相对路径。所以我得到一个 -1 return 错误。它找不到资产。提前感谢您的帮助。
Adding data files and next section using data files from module 在 pyinstaller 文档中。
是的,您应该在代码中使用包相对路径而不是普通相对路径。因为包将被提取而不是相对于执行二进制文件,而是在临时目录中的某个地方。寻找 pkg_resources
包。例如这个函数:
dir = resource_filename('your_package', 'app/samples')
要阐明如何在规范中定义数据,请查看示例:
a = Analysis(['../trunk/__main__.py']
...
datas=[('../src/trunk/your_package/app/samples/data.bin', 'your_package/app/samples')],
...