Pyinstaller-在可执行文件中包含 Assets

标签 pyinstaller

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

我的 Assets 文件夹包含 tkinter GUI 的图像,“assets\images.png”。想要包含在可执行文件本身中的东西。

所以我将这一行包含在我的 .spec 文件中的“a.datas”下。

Tree(' Assets ', prefix=' Assets \'),

然后用PyInstaller“pyinstaller.py MipMapper-V1.2\MipMapper-V1.2.spec”重新打包。这会生成一个不包含 Assets 的 exe。我可以将 Assets 文件夹复制到exe的目录中并且它可以工作。是我的代码吗?它指的是“ Assets ”事物的相对路径。所以我收到 -1 返回错误。它找不到 Assets 。感谢您提前提供的任何帮助。

最佳答案

Adding data files下一节 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')],
         ...

关于Pyinstaller-在可执行文件中包含 Assets ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53526620/

相关文章:

python - 使 PyInstaller exe 同时执行命令行和窗口

python - 关于 Python 可执行文件中缺少 GTK 图标的警告

Python 如何将脚本从 Windows 移动到 Linux?

python - 在 pyinstaller 中包含 sqlite3

python - 找不到 pyinstaller 隐藏导入

python - 使用 pyinstaller 编译为 .exe 后 PyQt5 应用程序缺少图标

python - 如何在 Windows 上制作单文件可执行 python 2.7 x64?

python-3.x - 在 Mac OS X Catalina 中找不到 "/Library/Python/3.7m/include/pyconfig.h"?

python - 在 PyInstaller 中使用 --onefile 和 .spec

python - Pyinstaller 和 Pycrypto