天天看點

使用PyInstaller2将Python腳本轉化為可執行檔案 使用PyInstaller2将Python腳本轉化為可執行檔案

使用PyInstaller2将Python腳本轉化為可執行檔案

最近使用Python為項目開發一款測試工具。因為使用者在另一個部門,上司希望能把Python腳本釋出為脫離Python平台運作的可執行程式,最好是單個的exe檔案,同時也保護我們部門的源碼。PyInstaller恰滿足這個需求。目前PyInstaller的最新版本是2.0,支援Python2.7。本文将讨論怎樣安裝PyInstaller2并使其正常工作。文中提到的所有工具都能下載下傳到。本文部落格園balian原創,歡迎轉載,轉載請說明原作者。

下面的截圖來自PyInstaller官方網站PyInstaller.org。本文來自部落格園balian。筆者使用的是Windows 7平台,下載下傳zip版本的PyInstaller,下載下傳後檔案名為pyinstaller-2.0.zip,将這個檔案解壓縮到需要的檔案夾就可以執行,不需要安裝。PyInstaller并不區分作業系統是32位還是64位,對Python是否為32位還是64位亦無要求。

使用PyInstaller2将Python腳本轉化為可執行檔案 使用PyInstaller2将Python腳本轉化為可執行檔案

安裝PyInstaller前,需要這樣一些準備:安裝Python,安裝Python Win32 Extensions,以及最好能有壓縮工具UPX。

關于Python,參見下圖,紅色箭頭所示為32位版本,下載下傳檔案名是python-2.7.3.msi。藍色箭頭所示為64位版本,下載下傳後檔案名是python-2.7.3.amd64.msi。顯然,如果你是32位Windows XP,你隻能安裝python-2.7.3.msi。如果你是64位Windows 7,則可以根據需要選擇兩者之一。Python的安裝略過。

使用PyInstaller2将Python腳本轉化為可執行檔案 使用PyInstaller2将Python腳本轉化為可執行檔案

注意,Python安裝完成以後,需要将Python的安裝目錄加入到系統的環境變量中。如下圖。

使用PyInstaller2将Python腳本轉化為可執行檔案 使用PyInstaller2将Python腳本轉化為可執行檔案

關于Python Win32 Extensions,最新版本是Build 2.18。官網位址http://starship.python.net/~skippy/win32/Downloads.html。下圖紅色箭頭所示是32位版本。顯然,如果選擇了運作于64位windows的Python,也請使用對應版本的PyWin。Pywin的安裝略過。

使用PyInstaller2将Python腳本轉化為可執行檔案 使用PyInstaller2将Python腳本轉化為可執行檔案

接着就是解壓縮PyInstaller。比如,将檔案解壓到c:\pyinstaller2。

關于UPX,最新版本UPX 3.08,見下圖,官網位址http://upx.sourceforge.net/。隻有紅色箭頭所示一個檔案下載下傳,檔案名是upx308w.zip,并且無所謂32位還是64位作業系統。本文來自部落格園balian。請解壓這個檔案,在解壓後的檔案夾中找到檔案upx.exe,将這個檔案直接拷貝到PyInstaller的安裝檔案夾裡。,比如c:\pyinstaller2。

使用PyInstaller2将Python腳本轉化為可執行檔案 使用PyInstaller2将Python腳本轉化為可執行檔案

綜合以上,如果使用PyInstaller打包工具,有32位和64位兩種解決方案。

方案一:如果是32/64位Win XP或者32/64位Win 7(本文寫作按照該方案。) 

安裝python-2.7.3.msi 

安裝pywin32-218.win32-py2.7.exe 

解壓pyinstaller-2.0.zip 

拷貝upx.exe

方案二:如果是64位Win XP或者64位Win 7 

安裝python-2.7.3.amd64.msi 

安裝pywin32-218.win-amd64-py2.7.exe 

解壓pyinstaller-2.0.zip 

拷貝upx.exe

按照方案一安裝結束後,安裝檔案夾c:\pyinstaller2應如下圖。

使用PyInstaller2将Python腳本轉化為可執行檔案 使用PyInstaller2将Python腳本轉化為可執行檔案

現在就可以從指令行來打包py腳本了。PyInstaller 2.0和以前的版本有一些不同,使用者不需要預先運作Configure.py或者生成spec檔案。

轉載:點選打開連結