在EXE中使用PyInstaller打包数据文件

Posted

技术标签:

【中文标题】在EXE中使用PyInstaller打包数据文件【英文标题】:Use PyInstaller to package data files in the EXE 【发布时间】:2019-04-05 14:47:40 【问题描述】:

如何将文件打包成通过 PyInstaller --onedir 生成的 EXE 文件?

我明白了,我可以添加文件

a.zipped_data+=["version.json", "version.json", "DATA]
PYZ(a.pure, a.zipped_data)

pyi-archive_viewer 显示 PYZ-00.pyz 中的文件

但是

pkg_util.find_loader("testmod").get_data("version.json") 

找不到文件。

注意:我不能使用 --onefile 模式,因为它需要在每次程序启动时解压缩几个 100 MB。我想将几个文件(不仅仅是版本文件)与可执行文件联系起来。

【问题讨论】:

【参考方案1】:

传递给 get_data 的名称错误。

对于 Windows 可执行文件 c:\test\testpgm.exe,正确的名称应为 c:\test\version.json

在 Linux 中,可执行文件可能是 /usr/local/bin/test/testpgm,正确的名称应该是 /usr/local/test/version.json

【讨论】:

以上是关于在EXE中使用PyInstaller打包数据文件的主要内容,如果未能解决你的问题,请参考以下文章