在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 打包的exe程序如何调用外部模块?
pyinstaller打包生成的exe文件并使用python终止后台的exe程序运行