logo

Thursday 24th of May 2012

廣告

廣告贊助商

首頁 Python教學 Python進階教學 如何使用py2exe將Python程式打包成.exe執行檔的教學
如何使用py2exe將Python程式打包成.exe執行檔的教學 PDF 列印 E-mail
作者是 Victor   
週三, 11 二月 2009 21:09

依賴直譯器的煩人問題

你是否有這樣的煩腦,用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=['python_file.py'])

其中的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檔就可以了

常見錯誤

有一個很常見的錯誤是,我成功地產生了.exe檔,也可以執行,但一執行就會產生找不到模組的錯誤,如下面所示範

Traceback (most recent call last):
  File "demo3.py", line 7, in <module>
  File "base.pyc", line 5, in <module>
  File "twisted\web\client.pyc", line 16, in <module>
  File "twisted\web\error.pyc", line 9, in <module>
ImportError: No module named resource

關於這點,是因為有些模組py2exe沒有辦法自動幫你找出來,因此你需要自己下參數要它加入那些模組,解決方法請參考我寫的,py2exe 找不到Module的問題

 

 

核心是 Joomla!. Designed by: Free Joomla Theme, whois protect. Valid XHTML and CSS.