python打包exe报错_python 程序打包为 windows 可执行程序 exe
1,使用到的程序
1,python
2,pyinstaller
2,安裝 pyinstaller
pip install pyinstaller
3,安裝可能出現(xiàn)的問題與報錯
1:AttributeError: module 'setuptools.build_meta' has no attribute 'legacy',解決如下
pip install --upgrade setuptools
2:error: invalid command 'bdist_wheel',解決如下
pip install wheel
4,打包軟件,首先進(jìn)入到程序的根路徑,假設(shè)程序的主入口文件為 main.py
1,打包為單 exe 程序
pyinstaller -w -F main.py
2,打包為一個文件夾(推薦)
pyinstaller -w -D main.py
4,如果想設(shè)置程序圖標(biāo),可以添加 -i 參數(shù),假設(shè)圖標(biāo)放在 ./icon.png
pyinstaller -w -D -i ./icon.png main.py
5,打包以及運行的時候 可能出現(xiàn)的錯誤
1,failed to execute pyi_rth_pkgres,這個有可能是 pyinstaller 安裝錯誤導(dǎo)致的,可以嘗試卸載從 git 的地址安裝
2,No module named 'win32con' 這個是缺乏 pypiwin32 導(dǎo)致的
pip install pypiwin32
3,在 Python 中使用了 exit 退出程序時報: name 'exit' is not defined
至于為什么出現(xiàn)這種情況,暫時未知,解決辦法就是導(dǎo)入 sys,代碼如下
import sys
sys.exit()
如果其它系統(tǒng)函數(shù)出現(xiàn)該錯誤,應(yīng)該都可以參考該方法解決
4,關(guān)于靜態(tài)資源文件
正常情況下,打包時忽略靜態(tài)資源文件的,打包后需要將靜態(tài)資源文件拷貝到相應(yīng)的路徑
6,程序調(diào)試
1,常見錯誤:當(dāng)程序運行時報 failed to execute script main 錯,一般是程序執(zhí)行出錯導(dǎo)致的,這時我們就需要通過調(diào)試來確定是什么問題
2,我們修改入口文件,通過 try 和 input 捕捉異常和阻塞程序,防止程序一閃而逝,如下面
try:
from source.window import Window
window = Window()
window.show()
except Exception as ex:
print(ex)
input("請檢查異常")
3,打一個帶控制臺的可執(zhí)行程序,這樣如果有報錯你就可以看到錯誤信息去一一解決了
pyinstaller -F -c main.py
7,附參數(shù)如下
參數(shù)
描述
-F, –onefile
打包一個單個文件,如果你的代碼都寫在一個.py文件的話,可以用這個,如果是多個.py文件就別用
-D, –onedir
打包多個文件,在dist中生成很多依賴文件,適合以框架形式編寫工具代碼,我個人比較推薦這樣,代碼易于維護(hù)
-K, –tk
在部署時包含 TCL/TK
-a, –ascii
不包含編碼.在支持Unicode的python版本上默認(rèn)包含所有的編碼
-d, –debug
產(chǎn)生debug版本的可執(zhí)行文件
-w,–windowed,–noconsole
使用Windows子系統(tǒng)執(zhí)行.當(dāng)程序啟動的時候不會打開命令行(只對Windows有效)
-c,–nowindowed,–console
使用控制臺子系統(tǒng)執(zhí)行(默認(rèn))(只對Windows有效)
-s,–strip
可執(zhí)行文件和共享庫將run through strip.注意Cygwin的strip往往使普通的win32 Dll無法使用
-X, –upx
如果有UPX安裝(執(zhí)行Configure.py時檢測),會壓縮執(zhí)行文件(Windows系統(tǒng)中的DLL也會)(參見note)
-o DIR, –out=DIR
指定spec文件的生成目錄,如果沒有指定,而且當(dāng)前目錄是PyInstaller的根目錄,會自動創(chuàng)建一個用于輸出(spec和生成的可執(zhí)行文件)的目錄.如果沒有指定,而當(dāng)前目錄不是PyInstaller的根目錄,則會輸出到當(dāng)前的目錄下
-p DIR, –path=DIR
設(shè)置導(dǎo)入路徑(和使用PYTHONPATH效果相似).可以用路徑分割符(Windows使用分號,Linux使用冒號)分割,指定多個目錄.也可以使用多個-p參數(shù)來設(shè)置多個導(dǎo)入路徑,讓pyinstaller自己去找程序需要的資源
–icon=
將file.ico添加為可執(zhí)行文件的資源(只對Windows系統(tǒng)有效),改變程序的圖標(biāo) pyinstaller -i ico路徑 xxxxx.py
–icon=
將file.exe的第n個圖標(biāo)添加為可執(zhí)行文件的資源(只對Windows系統(tǒng)有效)
-v FILE, –version=FILE
將verfile作為可執(zhí)行文件的版本資源(只對Windows系統(tǒng)有效)
-n NAME, –name=NAME
可選的項目(產(chǎn)生的spec的)名字.如果省略,第一個腳本的主文件名將作為spec的名字
總結(jié)
以上是生活随笔為你收集整理的python打包exe报错_python 程序打包为 windows 可执行程序 exe的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 苹果7安装系统怎么安装教程视频下载 苹果
- 下一篇: 用python计算2+4+6+…+20的