我想将一个 zip 文件捆绑到我的 python 可执行文件中

I want to bundle a zip file into my python executable

我的 python 程序需要从同样位于可执行文件目录中的 zip 文件中提取数据。 编译我的脚本时将 zip 文件添加到 pyinstaller 时。 exe 稍后无法找到 zip 文件,因为它似乎不在可执行文件目录中

我看过这个 post 但不明白如何在什么地方应用什么。简单地将代码片段粘贴到我自己的 .py 中并没有解决问题。

我处理 zip 文件的代码:`

with zipfile.ZipFile("data.zip", 'r') as zip_ref:
                zip_ref.extractall(pte2)
我当前的 pyinstaller 命令:

pyinstaller --noconfirm --onefile --windowed --add-data "C:/Users/User/Downloads/dir/data.zip;."  "C:/Users/User/Downloads/dir/program.py"

问题: 我如何告诉 pyinstaller 将 zip 文件和 .py 捆绑到同一个 exe 中,并让我的 .py 仍然找到 zip 文件?

所以经过更多的尝试和错误,我让它工作了。 在你的脚本中,你访问文件的地方,在我的例子中 data.zip。这样做:

with zipfile.ZipFile(os.path.join(sys._MEIPASS, "data.zip"), 'r') as zip_ref:
                zip_ref.extractall(pte2)

然后使用

pyinstaller --noconfirm --onefile --windowed --add-data "C:/Users/User/Downloads/dir/data.zip;."  "C:/Users/User/Downloads/dir/program.py"