參考網址:
http://ez2learn.com/index.php/python-tutorials/advance-tutorials/176-py2exepythonexe
http://www.chinaunix.net/jh/55/608594.html
http://jimmynote.blogspot.com/2010/03/using-py2exe.html
--------------------------------------------------------------------------------------------------
py2exe 使用 教學
介紹
py2exe是一個工具程式,可以將python程式轉換成為單一的執行檔案。
初級篇
1. 到官網下載py2exe程式
2. 安裝py2exe
3. 在你要打包的檔案的同一個目錄下,新增一個名為setup.py的檔案,內容為:
from distutils.core import setup import py2exe setup(console=['???.py'])其中, ???.py 就是你要打包的檔案名稱,例如 hello.py。
4. 完成後存檔
5. 接著 開始 -> 執行 -> cmd
6. 切換到你要打包的檔案的目錄下,EX:
在cmd裡輸入 cd /d G:\program\python\src
其中 cd 是進入資料夾的指令
/d 是可以切換到其它磁碟的參數
7. 在cmd裡再輸入 python setup.py install
8. 在cmd裡再一次輸入 python setup.py py2exe
如果有發現缺少什麼dll檔,可以參考這篇,或是其他問題,請參考參考網址的第一個網站!
9. 然後你可以發現有build和dist兩個資料夾在你的目錄下,其中dist的???.exe就是我們要的執行檔,以步驟3為例就是hello.exe囉!
PS:如果想要將程式移到沒有安裝Python直譯器的環境下執行,只要將dist下的所有檔案複製過去然後再執行.exe檔就可以了
10.***密技***不知道各位有沒有覺得每次再做5-8的步驟的時候都感覺好麻煩,有沒有更快的方法呢?當然有拉,只要把以下的程式存成bat檔,點2下bat檔就可以執行5-8的步驟囉!
@echo off echo 開始編譯程式 cd /d G:\program\python\src python setup.py install python setup.py py2exe pause當然第3行要改成你自己的目錄。另外如果檔名不知道怎麼取的話就取"make.bat"吧!
進階篇
1. 一般的情況下都是用console,如果我今天是用wxpython做視窗的話,那我的console就要改成windows
setup(windows=['???.py'])
2. 若要一次產生多個執行檔,只要將多個 script 檔名以 list 方式傳給 setup() 即可:
setup(console=["hello.py", "hello1.py", "hello2.py"])
3. 亦可以同時產生 console 和 windows 程式:
setup(console=["hello.py", "hello1.py"], windows=["hello2.py"])
4. 應用程式有時會使用到一些外部檔案,例如設定檔,字型或是圖檔,透過 setup() 的 data_files 參數,可以將這些額外的檔案加入發佈目錄中。將一個或多個 (目的目錄, [來源檔 1, 來源檔 2...來源檔 n]) 形成的 tuple,包裝成 list 指派給 data_files參數即可:
setup(console=["hello.py", "hello1.py"], windows=["hello2.py"], data_files=[("img", [r"d:\documents\matrix.jpg", r"d:\documents\Batman.jpg"]), ("xml", [r"D:\tmp\mypaint.xml", r"D:\tmp\mypuzzle.xml", r"D:\tmp\mypuzzle1.xml"])])產生之後的 dist 目錄中,應該會有一 img 目錄,內含 matrix.jpg 和 batman.jpg 兩個檔案,以及 xml 目錄,內含三個 xml 檔案。
另外 py2exe 還提供了包裝成 windows service 和 COM server 的功能,由於目前有用到所以有研究。另外 Python 的 GUI toolkit - Tkinter 亦可正常使用,只是包裝後會多出 2MB 多的 Tkinter runtime,讓程式瞬間增肥許多...但,誰管這麼多呢?能夠讓別人也用用自己寫的 Python 程式,肥一點也無所謂囉!
5. 壓縮檔案,如wxpython的lib,可以參考官方文件
6. 更多的範例與使用http://www.dev.idv.tw/mediawiki/index.php/Py2exe%E7%B0%A1%E4%BB%8B