日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學(xué)無先后,達(dá)者為師

網(wǎng)站首頁 編程語言 正文

使用PyInstaller?打包配置文件_python

作者:solitary_w ? 更新時(shí)間: 2022-04-15 編程語言

PyInstaller打包配置文件

在很多項(xiàng)目完成時(shí),我們需要將python文件打包發(fā)布為一個exe應(yīng)用程序,在python 中,打包就變得很簡單了。

此文章僅介紹最簡單的單個python文件打包,以及資源打包,后續(xù)復(fù)雜的,實(shí)踐后再做更新。

(一)?僅打包python文件

Step1.

安裝 PyInstaller 第三方庫。

pip install PyInstaller

Step2.

打包python文件。

pyinstaller -F -i tubiao.ico   Test.py

運(yùn)行結(jié)束后在當(dāng)前文件夾會有文件夾(dist,build),打包好的exe就在dist中。

(二)?打包python文件與資源文件

很多時(shí)候,我們需要讀取某個路徑下的配置文件以及其他資源文件等等,而每次發(fā)布時(shí)打包好python程序后再拷貝,很繁瑣而且容易加大因?yàn)槿斯ざ鸬腻e誤率。

首先,得在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)

在傳入資源文件或者配置文件前,現(xiàn)將路徑使用process_path函數(shù)處理一下。

接下來就是資源文件或者配置文件與python程序一起打包了。

Step1.?

生成spec文件

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

運(yùn)行命令后會在當(dāng)前文件夾下生成Test.spec 文件

Step2.

編輯Test.spec文件

在Test.py中我們需要去讀取當(dāng)前文件夾下Conf.json 配置文件,如果此文件不存在,則退出程序。

現(xiàn)在將Conf.json打包進(jìn)exe中(程序中需要對路徑做處理,即(二)中提到的路徑處理函數(shù)).

修改Test.spec 為:

在data中將資源文件或者配置文件添加進(jìn)去。

Step3.

打包spec文件

pyinstaller Test.spec

打包完成,無任何報(bào)錯信息,生成的exe在dist中,測試Test.exe,將其拷貝至沒有Conf.json的文件夾下運(yùn)行,程序正常運(yùn)行,打包成功。

pyinstaller打包后,配置文件無法正常讀取問題

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

先獲取絕對路徑在讀取

原文鏈接:https://blog.csdn.net/qq_38328875/article/details/103782459

欄目分類
最近更新