使用PyInstaller打包Python程式

studywell發表於2018-11-02

轉一部分:


使用PyInstaller打包Python程式

PyInstaller介紹: 

PyInstaller是一個能將Python程式轉換成單個可執行檔案的程式,作業系統支援Windows, Linux, Mac OS X, Solaris和AIX。並且很多包都支援開箱即用,不依賴環境。

環境為windows7作業系統,python2.7.8 virtual environment 
官網: 

詳細步驟: 
1,win7下面先安裝這個依賴:  ,下載下來後切換到venv2.7,然後使用easy_install xxx.exe安裝

2,pip安裝PyInstaller:

pip install pyinstaller

3,打包過程中可能會出現msvcp90.dll找不到的問題,去  下載第三個zip檔案,解壓後放到C:\Windows\System32,如果是64位的還要放到C:\Windows\SysWOW64目錄下。

4,再次執行報MSVCR90.dll找不到,同理去  下載MSVCR90.dll,放到C:\Windows\System32和C:\Windows\SysWOW64中。

5,將你的整個程式先複製到某個臨時資料夾下面,比如D:\tmp\core-wxpython,此目錄下有個main.py是執行入口

6,執行build命令,並新增必要的搜尋路徑,外加執行檔案的圖示:

cd D:\tmp\core-wxpython
pyinstaller -F -w -i d:\tmp\main.ico main.py

如果還想新增自定義的依賴庫,就要加上-p引數:

pyinstaller -F -w -p D:\tmp\core-python\libs -i d:\tmp\main.ico main.py

引數說明: 
-F 表示生成單個可執行檔案 
-w 表示去掉控制檯視窗,這在GUI介面時非常有用。不過如果是命令列程式的話那就把這個選項刪除吧! 
-p 表示你自己自定義需要載入的類路徑,一般情況下用不到 
-i 表示可執行檔案的圖示

需要注意的是: 
1).檢查生成的\XXX\build\pyi.win32\XXX\warnXXX.txt(XXX是你的專案名)中,是否缺少了必要的模組。如果有缺少的,那麼去如上所述,新增必要的搜素路徑,使得pyinstaller在執行時,可以找到對應的模組並整合進來。 
2).此處我這裡沒有UPX,暫時沒去折騰。估計是用UPX去壓縮,壓縮後所生成的exe檔案的大小,會小得多。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29519108/viewspace-2218515/,如需轉載,請註明出處,否則將追究法律責任。

相關文章