Python程式打包成exe的一些坑
今天寫了一個專案,Python專案,需要在win7上跑起來,我想,這不是簡單的不行麼,直接上Pyinstaller不就完了?
但是後來,我發覺我真是too young too simple。
為什麼這麼說呢,因為我是堅定的Linux黨,沒Windows!!!!!這就說明什麼呢,當你在linux上Pyinstaller打包生成程式之後,你根本就不能在win上執行。
linux下,Pyinstaller生成的可執行檔案,win根本就不認,直接會報出:執行檔案和現在的win版本不相容。
所以怎麼解決呢,哈哈,當然是找個windows電腦,安上Python,pip, pyinstaller直接硬上,因為:Pyinstaller打包的程式只能在打包平臺類似的系統才可以跑起來!!!
明白了麼各位!
安裝PyInstaller
對於那些網路比較穩定,能夠流暢使用pip源地址的使用者,直接下面的命令就可以搞定:
pip install pyinstaller
通常我們會下載原始碼包,然後進入包目錄,執行下面的命令(需要安裝setuptools):
python setup.py install
安裝完後,檢查安裝成功與否:
pyinstaller --version
安裝成功後,就可以使用下面的命令了:
pyinstaller
: 打包可執行檔案的主要命令,詳細用法下面會介紹。pyi-archive_viewer
pyi-bindepend
: 檢視可執行檔案依賴的動態庫(.so或.dll檔案)pyi-...
: 等等。
使用PyInstaller
1.如果需要編譯成單個檔案:
pyinstaller -F test.py
生成單個的可執行檔案
2.如果需要新增軟體的圖示:
pyinstaller -F test.py -i test.icon
注意一定是icon檔案才行;
3.如果編譯GUI專案,可以使用
pyinstaller -w test.py
或者:
pyinstaller -w test.pyw
或者:
pyinstaller -w --noconsole( windwos平臺下)
linux下預設沒有彈窗(彈出terminal);
4.在mac環境下編譯,含有app可執行檔案.
pyinstaller test.py -w --windowed
此時在專案目錄下含有unix可執行檔案和app檔案
5.壓縮可執行檔案
使用upx;
upx支援windows,linux32/64位;
pyinstaller test.py --upx-dir /home/test/upx/