PyInstaller 打包配置文件

在很多项目完成时,我们需要将python文件打包发布为一个exe应用程序,在python 中,打包就变得很简单了。

此文章仅介绍最简单的单个python文件打包,以及资源打包,后续复杂的,实践后再做更新。

(一) 仅打包python文件

Step1.

安装 PyInstaller 第三方库。

pip install PyInstaller

Step2.

打包python文件。

pyinstaller -F -i tubiao.ico   Test.py

运行结束后在当前文件夹会有文件夹(dist,build),打包好的exe就在dist中。

(二)打包python文件与资源文件

很多时候,我们需要读取某个路径下的配置文件以及其他资源文件等等,而每次发布时打包好python程序后再拷贝,很繁琐而且容易加大因为人工而引起的错误率。

首先,得在python程序中对读取的资源文件或者配置文件路径做一下处理。

# 处理资源路径或者配置文件路径
def process_path(path):
    if getattr(sys, 'frozen', False): #是否Bundle Resource
        base_path = sys._MEIPASS
    else:
        base_path = os.path.abspath(".")
    return os.path.join([base_path, path)

在传入资源文件或者配置文件前,现将路径使用process_path函数处理一下。

接下来就是资源文件或者配置文件与python程序一起打包了。

Step 1. 

生成spec文件

pyi-makespec -F -i tubiao.ico Test.py

运行命令后会在当前文件夹下生成Test.spec 文件

Step 2.

编辑Test.spec文件

在Test.py中我们需要去读取当前文件夹下Conf.json 配置文件,如果此文件不存在,则退出程序。

现在将Conf.json打包进exe中(程序中需要对路径做处理,即(二)中提到的路径处理函数).

修改Test.spec 为:

在data中将资源文件或者配置文件添加进去。

Step3.

打包spec文件

pyinstaller Test.spec

打包完成,无任何报错信息,生成的exe在dist中,测试Test.exe,将其拷贝至没有Conf.json的文件夹下运行,程序正常运行,打包成功。

  • 5
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值