使用PyInstaller?打包配置文件
PyInstaller打包配置文件
在很多項目完成時,我們需要將python文件打包發(fā)布為一個exe應(yīng)用程序,在python 中,打包就變得很簡單了。
此文章僅介紹最簡單的單個python文件打包,以及資源打包,后續(xù)復(fù)雜的,實踐后再做更新。
(一) 僅打包python文件
Step1.
安裝 PyInstaller 第三方庫。
pip install PyInstaller
Step2.
打包python文件。
pyinstaller -F -i tubiao.ico Test.py
運行結(jié)束后在當前文件夾會有文件夾(dist,build),打包好的exe就在dist中。
(二) 打包python文件與資源文件
很多時候,我們需要讀取某個路徑下的配置文件以及其他資源文件等等,而每次發(fā)布時打包好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)在傳入資源文件或者配置文件前,現(xiàn)將路徑使用process_path函數(shù)處理一下。
接下來就是資源文件或者配置文件與python程序一起打包了。
Step1.
生成spec文件
pyi-makespec -F -i tubiao.ico Test.py
運行命令后會在當前文件夾下生成Test.spec 文件

Step2.
編輯Test.spec文件
在Test.py中我們需要去讀取當前文件夾下Conf.json 配置文件,如果此文件不存在,則退出程序。
現(xiàn)在將Conf.json打包進exe中(程序中需要對路徑做處理,即(二)中提到的路徑處理函數(shù)).
修改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')
先獲取絕對路徑在讀取
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
python提取具有某種特定字符串的行數(shù)據(jù)方法
今天小編就為大家分享一篇python提取具有某種特定字符串的行數(shù)據(jù)方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-12-12
Python簡單連接MongoDB數(shù)據(jù)庫的方法
這篇文章主要介紹了Python簡單連接MongoDB數(shù)據(jù)庫的方法,結(jié)合實例形式分析了Python使用pymongo模塊操作MongoDB數(shù)據(jù)庫的相關(guān)技巧,需要的朋友可以參考下2016-03-03
PyCharm使用matplotlib報MatplotlibDeprecationWarning問題解決辦法
這篇文章主要給大家介紹了關(guān)于PyCharm使用matplotlib報MatplotlibDeprecationWarning問題解決的相關(guān)資料,主要是 matplotlib版本過高導(dǎo)致的,文中通過圖文介紹的非常詳細,需要的朋友可以參考下2023-06-06

