我想将一个 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"
我的 python 程序需要从同样位于可执行文件目录中的 zip 文件中提取数据。 编译我的脚本时将 zip 文件添加到 pyinstaller 时。 exe 稍后无法找到 zip 文件,因为它似乎不在可执行文件目录中
我看过这个 post 但不明白如何在什么地方应用什么。简单地将代码片段粘贴到我自己的 .py 中并没有解决问题。
我处理 zip 文件的代码:`
with zipfile.ZipFile("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"
问题: 我如何告诉 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"