1. 程式人生 > >Python程式打包成exe的一些坑

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/