在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打包数据文件的主要内容,如果未能解决你的问题,请参考以下文章

python-pyinstaller打包

python 中 使用 pyinstaller 打包的exe程序如何调用外部模块?

pyinstaller打包,exe图片资源无法显示问题

pyinstaller打包生成的exe文件并使用python终止后台的exe程序运行

[Python][小知识][NO.5] 使用 Pyinstaller 打包成.exe文件

基于py打包了一个exe文件,里面涉及的数据位于MySQL中,怎么让其他人也能正常使用exe?