使用pyinstaller打包一個多文件的項(xiàng)目座舍,主函數(shù)的main.py
文件結(jié)構(gòu)大概如下:
--code_1
? ----aa.py
--code_2
? ----bb.py
main.py
這里要將pyinstaller打包成一個exe,而且是單一的exe文件。
pyinstaller 的各個參數(shù)可以參考官方文檔:https://pyinstaller.readthedocs.io/en/v3.3.1/usage.html
本文主要記錄幾個注意點(diǎn):
1. 搭建好虛擬環(huán)境
如果你項(xiàng)目的環(huán)境是你的基礎(chǔ)環(huán)境(base),那么可能會出現(xiàn)把本項(xiàng)目不需要的包依賴全部打包進(jìn)去依痊,導(dǎo)致最后生成的exe文件很大。所以建議要確保虛擬環(huán)境的正確性怎披,盡量不要加載多余的包胸嘁,畢竟,少一個包就少一個報錯的隱患凉逛。
2. 多文件py問題
考慮到除主函數(shù)之外的py文件依賴的包會找不到性宏,所以在打包時也要把這個問題解決好,目前網(wǎng)上找到兩種方法状飞,一種是先生成.spec文件毫胜,在.spec文件中修改后再繼續(xù)打包,另一種是直接命令行生成exe,這里推薦第二種:
```
pyinstaller -p code_1的絕對路徑;code_2的絕對路徑 -F main.py
```
第二種方法的好處個人覺得首先他不需要對每個py文件進(jìn)行列舉诬辈,第二就是一次性一條命令解決問題酵使,比較方便快速
3. No time zone found with key UTC
報這個錯可能是你安裝某些包時時區(qū)被你弄錯了,建議先別急著按照其他帖說的修改源碼等操作焙糟,可以試著重新安裝虛擬環(huán)境口渔,把所有包都重裝下,我是最后沒辦法穿撮,重裝了就好了搓劫。
4.某個包找不到問題
在打包過程中,命令行可能就會出現(xiàn)這些問題混巧,但是一切要以執(zhí)行exe為準(zhǔn)枪向,如果exe執(zhí)行正常,那說明用不到那個模板咧党,可以不用管秘蛔,如果真的強(qiáng)迫癥的話,可以加上hidden命令,詳細(xì)去官網(wǎng)找深员。