Python打包成exe(windows)或者app(mac)實(shí)踐
一、問題版本
為了避免版本不一問題,想要肯定成功的可以按照我的版本來
- 我的python版本為3.8.1
- 安裝的pyinstaller為4.5.1
二、windows安裝
先卸載舊的,如果從沒安裝過可以省略
pip uninstall pyinstaller -y
然后安裝4.5.1,并且為避免出現(xiàn)下載連接超時(shí)指定鏡像
pip install pyinstaller==4.5.1 -i https://pypi.doubanio.com/simple/
然后進(jìn)入你寫好的python文件的文件夾中,打開命令行窗口
pyinstaller -F -w -i app_icon.ico --add-binary "D:\python\DLLs\tcl86t.dll;." --add-binary "D:\python\DLLs\tk86t.dll;." tosolist.py
解釋:
-F:打包成 單個(gè) .exe 文件(所有依賴都整合到一個(gè)文件里,方便攜帶);-w:打包成 無控制臺窗口 的程序(打開 .exe 時(shí)不會彈出黑框,符合 “窗口版” 需求);-i app_icon.ico:設(shè)置圖標(biāo)(也可以先刪掉,等打包完成之后再設(shè)定圖標(biāo)也可以);- --add-binary "D:\python\DLLs\tcl86t.dll;." --add-binary "D:\python\DLLs\tk86t.dll;."
- 這部分是指定你的python中的dll文件,避免出現(xiàn)未知錯(cuò)誤,如果不寫也能成功那更好。
- 如果要寫,那么請將路徑更換成你自己的路徑。如果找不到,那就在控制臺輸入
where pythontosolist.py這個(gè)就是你要打包的python文件名稱
到這步就完成了,雙擊dist文件夾中的exe文件就行了。你也可以發(fā)送快捷方式到桌面。
三、mac安裝
大致邏輯相同
# 先升級 pip(避免舊版本報(bào)錯(cuò)) python3 -m pip install --upgrade pip -i https://pypi.doubanio.com/simple/ # 安裝 PyInstaller(無需指定版本,默認(rèn)會裝兼容當(dāng)前 Python 的穩(wěn)定版) python3 -m pip install pyinstaller -i https://pypi.doubanio.com/simple/
然后進(jìn)入到對應(yīng)文件夾下
#輸入以下命令,回車開始打包(針對 Tkinter 程序優(yōu)化,避免 macOS 下的依賴缺失): pyinstaller -F -w --add-binary "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/lib-dynload/_tkinter.cpython-38-darwin.so:." --add-data "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/tkinter:tkinter" password_manager_gui_fixed.py
命令參數(shù)解釋( macOS 重點(diǎn)?。?/h4>
| 參數(shù) | 作用 |
|---|---|
| -F | 打包成「單個(gè)文件」(最終會生成 .app 應(yīng)用,而非零散文件) |
| -w | 無控制臺窗口(打開 .app 時(shí)不彈出終端黑框,符合窗口版需求) |
| --add-binary "xxx:." | 強(qiáng)制添加 macOS 版 Tkinter 的核心動態(tài)庫(_tkinter.cpython-38-darwin.so),避免 “找不到 Tkinter” 錯(cuò)誤 |
| --add-data "xxx:tkinter" | 復(fù)制 Tkinter 的依賴文件到打包目錄,確保窗口控件正常顯示 |
| password_manager_gui_fixed.py | 你的 Python 腳本文件名(必須和實(shí)際一致) |
路徑注意事項(xiàng)
上述命令中的 3.8 對應(yīng) Python 3.8 版本,若你的 Python 是 3.9,需將路徑中的 3.8 改成 3.9(比如 /Library/Frameworks/Python.framework/Versions/3.9/...);
若不知道 Tkinter 依賴的具體路徑,可在終端輸入以下命令查詢,然后替換到打包命令中:
# 查找 _tkinter 動態(tài)庫路徑 find /Library/Frameworks/Python.framework -name "_tkinter.cpython-*.so" # 查找 tkinter 依賴文件夾路徑 find /Library/Frameworks/Python.framework -name "tkinter" -type d
然后依然在dist文件夾中使用app文件就可以了
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Python 執(zhí)行矩陣與線性代數(shù)運(yùn)算
這篇文章主要介紹了Python 執(zhí)行矩陣與線性代數(shù)運(yùn)算,文中講解非常細(xì)致,代碼幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下2020-08-08
Keras load_model 導(dǎo)入錯(cuò)誤的解決方式
這篇文章主要介紹了Keras load_model 導(dǎo)入錯(cuò)誤的解決方式,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-06-06
python使用Bokeh庫實(shí)現(xiàn)實(shí)時(shí)數(shù)據(jù)的可視化
Python語言以其豐富的數(shù)據(jù)科學(xué)生態(tài)系統(tǒng)而聞名,其中Bokeh庫作為一種功能強(qiáng)大的可視化工具,為實(shí)時(shí)數(shù)據(jù)的可視化提供了優(yōu)秀的支持,本文將介紹如何使用Bokeh庫實(shí)現(xiàn)實(shí)時(shí)數(shù)據(jù)的可視化,并提供相關(guān)代碼實(shí)例,需要的朋友可以參考下2024-05-05
python機(jī)器學(xué)習(xí)理論與實(shí)戰(zhàn)(四)邏輯回歸
這篇文章主要為大家詳細(xì)介紹了python機(jī)器學(xué)習(xí)理論與實(shí)戰(zhàn)第四篇,邏輯回歸的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-01-01
pytorch 中autograd.grad()函數(shù)的用法說明
這篇文章主要介紹了pytorch 中autograd.grad()函數(shù)的用法說明,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-05-05
Django 解決distinct無法去除重復(fù)數(shù)據(jù)的問題
這篇文章主要介紹了Django 解決distinct無法去除重復(fù)數(shù)據(jù)的問題,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-05-05
python區(qū)塊鏈地址的簡版實(shí)現(xiàn)
這篇文章主要為大家介紹了python區(qū)塊鏈地址的簡版實(shí)現(xiàn),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-05-05

