开发者

使用PyInstaller 打包配置文件

目录
  • PyInstaller打包配置文件
    • (一) 仅打包pytezPfkGNhon文件
    • (二) 打包python文件与资源文件
  • pyinstaller打包后,配置文件无法正常读取问题

    PyInstaller打包配置文件

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

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

    (一) 仅打包python文件

    Step1.

    安装 PyInstaller 第三方库。

    piezPfkGNp 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
            bas编程客栈e_path = sys._MEIPASS
        else:
            base_path = os.path.abspath(".")
        return os.path.join([base_path, path)

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

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

    Step1. 

    生成spec文件

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

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

    使用PyInstaller 打包配置文件

    Step2.

    编辑Test.spec文件

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

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

    修改Test.spec 为:

    使用PyInstaller 打包配置文件

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

    Step3.

    打包spec文件

    pyinstaller Test.spec

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

    pyinstaller打包后,www.cppcns.com配置文件无法正常读取问题

    import os
    file = os.path.dirname(os.path.abspath(__file__))
    cf = configparser.ConfigParser()
    print(file)
    cf.read(file+'/data.ini')

    先获取绝对路径在读取www.cppcns.com

    以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

    0

    上一篇:

    下一篇:

    精彩评论

    暂无评论...
    验证码 换一张
    取 消

    最新开发

    开发排行榜