依賴直譯器的煩人問題
你是否有這樣的煩腦,用Python寫了一個很酷的程式,傳給你同學看卻因為他沒有裝Python直譯器,為了執行你這個小程式,他得安裝直譯器才能執行,更麻煩的還有第三方的模組要安裝,意願就大大的降低,同樣的,面對你的客戶,你總不能要求你的客戶安裝Python直譯器,然後用easy_install下載需要的模組,那會是很麻煩的事情,很多時候,我們希望Python像.exe檔一樣只要是Windows就可以執行,該如何解決?
py2exe
所幸我們有現成的工具可以使用,叫做py2exe,它會將Python程式所需要的東西收集,並且打包成可以不用安裝直譯器就可以執行的.exe程式,以下我們就教你一步一步將Python程式打包成.exe檔
安裝py2exe
如果你有安裝easy_install,你可以直接在cmd下這樣的指令,就可以輕鬆地安裝py2exe,關於easy_install的教學可以參考這篇
- easy_install py2exe
如果沒有的話,你可以直接從它的官方網站下載並且安裝
開始打包
首先,你需要建立一個這樣的python檔案,放在你想打包的python程式同一個目錄下
- from distutils.core import setup
- import py2exe
- setup(console=[{“script” : “python_file.py”}], options={“py2exe” : {“includes” : [“lib_1″,”lib_2″,”lib_3”,…]}})
其中的python_file.py請改成你要當做執行檔的python檔案名稱,例如我想打包test.py成為.exe檔,就將上面程式裡的python_file.py改成test.py,當完成之後,檔名存成setup.py,放在你python程式的同一個目錄下
接著,開啟 開始 -> 執行 -> cmd,也就是所謂的命令提示字元,然後切換到你專案所在的目錄,然後執行如下面指令
- cd /d G:\Programming\Python\dstreamer\src\src\dist
- python setup.py install
完成之後,再執行以下指令
- python setup.py py2exe
此時py2exe就會開始幫你收集你程式會用到的模組,並且打包好,如果沒有問題,執行完同一個目錄下應該會多出build和dist兩個資料夾,dist裡會有一個和你python檔案名稱一樣的.exe檔,那就是封裝後的.exe執行檔,而該目錄下的所有其它檔案,就是該執行檔所需要的模組和檔案所封裝成的檔案,因此如果想要將程式移到沒有安裝Python直譯器的環境下執行,只要將dist下的所有檔案複製過去然後再執行.exe檔就可以了