关于pyinstaller数据文件的打包

前言

使用pyinstaller进行打包程序,执行程序时发现,放置于程序目录的文件无法加载(相对路径方式访问)。

经过一番测试,发现执行程序时,程序执行的当前目录不一定是程序文件所在的目录。

而使用--add-data--add-binary打包的文件,发现存放于系统的临时目录。

获取路径

经过一番搜索,终于找到了获取数据临时目录的方法。官方wiki

1
2
3
4
import sys

# 临时目录的路径
print(sys._MEIPASS)

这个临时目录,包含了运行所需的所有二进制文件,仅在程序运行时存在,当程序关闭就会自动清除。

由于运行时存在,可以直接被访问,所以请不要把一些安全性要求高的文件添加进去。

至于--add-data--add-binary的区别,暂时还不清楚。

 

原文链接:点击打开链接

PyInstaller是一个流行的Python包工具,它可以帮助你将Python应用及其所有依赖项打包独立的可执行文件,适用于Windows、Mac和Linux等平台。对于多文件应用,PyInstaller特别适合处理那些包含多个模块、数据文件和配置文件的情况。 当你使用PyInstaller进行多文件打包时,你可以按照以下步骤进行: 1. 安装PyInstaller:首先确保你的Python环境中已经安装了PyInstaller。如果没有,可以通过pip来安装: ```bash pip install pyinstaller ``` 2. 准备你的项目:确保所有依赖都已经正确地添加到`requirements.txt`或其他依赖管理文件中,并且你的代码结构清晰,方便PyInstaller找到所有的源文件。 3. 打包命令:创建一个`spec`(specification)文件,这是PyInstaller用来了解如何构建应用的关键文件。基本命令格式如下: ```bash pyinstaller your_script.py ``` 如果你的项目中有多个入口文件或复杂的依赖结构,你可以提供一个额外的`--name`选项指定输出文件名,并且运行`pyinstaller`时可能需要加上`--onefile`(单个可执行文件)、`--onedir`(目录模式)或`--specpath`选项。 4. 处理资源文件:PyInstaller默认不会复制所有数据文件,你需要明确指定哪些文件应该被包含在内。可以使用`--add-data`选项,如`--add-data=data_folder;data_files`来添加资源文件夹。 5. 编译:执行生的`dist`目录中的可执行文件,这通常会产生一个独立的可运行程序。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值