python打包exe不弹窗_Pyinstaller 打包exe教程及问题解决
安裝
pip insatll Pyinstaller
參數
pyinstaller -Fw main.py
參數
概述
-F,-onefile
打包一個單個文件,如果你的代碼都寫在一個.py文件的話,可以用這個,如果是多個.py文件就別用
-D, –onedir
打包多個文件,在dist中生成很多依賴文件,適合以框架形式編寫工具代碼,我個人比較推薦這樣,代碼易于維護
-K, –tk
在部署時包含 TCL/TK
-a, –ascii
不包含編碼.在支持Unicode的python版本上默認包含所有的編碼.
-d, –debug
產生debug版本的可執行文件
-w,–windowed,–noconsole
使用Windows子系統執行.當程序啟動的時候不會打開命令行(只對Windows有效)
-s,–strip
可執行文件和共享庫將run through strip.注意Cygwin的strip往往使普通的win32 Dll無法使用.
-X, –upx
如果有UPX安裝(執行Configure.py時檢測),會壓縮執行文件(Windows系統中的DLL也會)(參見note)
-o DIR, –out=DIR
指定spec文件的生成目錄,如果沒有指定,而且當前目錄是PyInstaller的根目錄,會自動創建一個用于輸出(spec和生成的可執行文件)的目錄.如果沒有指定,而當前目錄不是PyInstaller的根目錄,則會輸出到當前的目錄下.
-p DIR, –path=DIR
設置導入路徑(和使用PYTHONPATH效果相似).可以用路徑分割符(Windows使用分號,Linux使用冒號)分割,指定多個目錄.也可以使用多個-p參數來設置多個導入路徑,讓pyinstaller自己去找程序需要的資源
–icon=
將file.ico添加為可執行文件的資源(只對Windows系統有效),改變程序的圖標 pyinstaller -i ico路徑 xxxxx.py
-v FILE, –version=FILE
將verfile作為可執行文件的版本資源(只對Windows系統有效)
-n NAME, –name=NAME
可選的項目(產生的spec的)名字.如果省略,第一個腳本的主文件名將作為spec的名字
注意事項
如果程序有采用外部文件,如配置文件, 需要將文件放在dist中
-F 適合生成一個單一可執行的文件
-o 適用于多個文件引用情況,或者框架的結構
打包進程相關代碼失敗
例如編寫一些進程相關的shell命令,打包失敗,一般是使用 -F 可以成功,但是執行exe時有cmd彈窗,這非常不美觀, 如果使用-Fw c參數執行exe 直接失敗。 這種情況有兩種解決方案。
方案一: 使用 pyinstaller -Dw file.py 生成的是一個目錄文件。 程序執行成功,無黑名終端彈窗情況。
方案二: 起用 os.popen() 方法, 改用subprocess.Popen() 模塊
? 下面是我的測試,親測成功, 參數一定要配置好,否則程序執行失敗!
import subprocess
def checkprocess():
processnames = ['EXCEL.EXE']
for processname in processnames:
p = subprocess.Popen('taskkill /F /IM %s' %processname,shell=True, stdin=subprocess.PIPE, stdout=subprocess.PIPE,stderr=subprocess.STDOUT)
p.wait()
checkprocess()
有空寫一個 關于subprocess的教程,詳細研究一下他的參數配置
工欲善其事,必先利其器!
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
超強干貨來襲 云風專訪:近40年碼齡,通宵達旦的技術人生總結
以上是生活随笔為你收集整理的python打包exe不弹窗_Pyinstaller 打包exe教程及问题解决的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python访问web网页_python
- 下一篇: nginx tcp代理_nginx——T