使用PyInstaller 打包配置文件

 更新时间:2022年02月10日 08:41:55   作者:solitary_w  
这篇文章主要介绍了使用PyInstaller 打包配置文件,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

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程序一起打包了。

Step1. 

生成spec文件

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

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

Step2.

编辑Test.spec文件

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

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

修改Test.spec 为:

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

Step3.

打包spec文件

pyinstaller Test.spec

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

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

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

先获取绝对路径在读取

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

相关文章

  • Python文件处理

    Python文件处理

    这篇文章主要介绍了Python文件处理的相关资料,需要的朋友可以参考下
    2016-02-02
  • python利用json和pyecharts画折线图实例代码

    python利用json和pyecharts画折线图实例代码

    这篇文章主要介绍了python利用json和pyecharts画折线图实例,本文通过示例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-12-12
  • Python标准库内置函数complex介绍

    Python标准库内置函数complex介绍

    这篇文章主要介绍了Python标准库内置函数complex介绍,本文先是讲解了complex的作用和使用注意,然后给出了使用示例,需要的朋友可以参考下
    2014-11-11
  • C++和python实现阿姆斯特朗数字查找实例代码

    C++和python实现阿姆斯特朗数字查找实例代码

    这篇文章主要给大家介绍了关于C++和python实现阿姆斯特朗数字查找的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-12-12
  • Python GDAL库在Anaconda环境中的配置方法

    Python GDAL库在Anaconda环境中的配置方法

    这篇文章主要介绍了Python GDAL库在Anaconda环境中的配置,本文介绍在Anaconda环境下,安装Python中栅格、矢量等地理数据处理库GDAL的方法,需要的朋友可以参考下
    2023-04-04
  • 数组保存为txt, npy, csv 文件, 数组遍历enumerate的方法

    数组保存为txt, npy, csv 文件, 数组遍历enumerate的方法

    今天小编就为大家分享一篇数组保存为txt, npy, csv 文件, 数组遍历enumerate的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-07-07
  • python标准库OS模块详解

    python标准库OS模块详解

    这篇文章主要介绍了python标准库OS模块详细介绍,需要的朋友可以参考下
    2020-03-03
  • python基本算法之实现归并排序(Merge sort)

    python基本算法之实现归并排序(Merge sort)

    这篇文章主要给大家介绍了关于python基本算法之实现归并排序(Merge sort)的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-09-09
  • 基于python实现matlab filter函数过程详解

    基于python实现matlab filter函数过程详解

    这篇文章主要介绍了基于python实现matlab filter函数过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-06-06
  • python实现自幂数的示例代码

    python实现自幂数的示例代码

    这篇文章主要介绍了python实现自幂数的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-03-03

最新评论