但是程式是要給別人用的,所以就只好打包成exe檔。
python自己沒有compile成exe的功能。還好有人寫了py2exe的程序來做這件事。研究了一下,這位Victor寫的進階教學還算不錯,只是它打包的是程式本身,程式呼叫的DLL檔是沒打包起來的。
尤於我用的是python 2.7.2版,直接上py2exe的官網下載並且安裝。這個過程中出現了一個小插曲,py2exe的官網上直接給的是for python 2.6的py2exe,所以要再去它的下載目錄中找出for 2.7的py2exe來裝才可以。
那,程式呼叫的DLL檔要怎麼辦?只好再上網找答案。還好我是新手,新手會遇到的問題應該都不難。很快的在Frank的五四三就找到答案了。基本上在setup這個裏面要把參數設進去即可。這樣弄好,本來約200行的程式(我是新手,程式寫得很髒,行數很多,而且註解也很多),compile起來約有7M。
接著拿去別的電腦測測看,嗶嗶~~ERROR。跳出一個message說程式沒裝好???只好再拜google大神了。大神指示往pyodbc去找答案。果然,答案就在網路中。這個問題是因為py2exe不認識我import的pyodbc,必須在setup中加個options來指定,如下:
setup(如果有有指定別的option了,可以用"逗號"分開。
options = { "py2exe": { "includes": "decimal, datetime" } })
想說,這樣應該好了吧。一執行,哇咧,為什麼又有錯誤,還有log檔給我。這次有錯誤訊息了,表示至少程式有跑到,而錯誤訊息是:
EOFError: EOF when reading a line。還是來問Google大神吧。還好,還不是很難的問題,大神這次指示往這兒去,會遇到貴人。果然,又是個小問題,原來之前的Victor大大功力太高,都寫GUI的程式,不像小弟我的處女作只是在CONSOLE上跑。所以要把SETUP中的
window = [{'script': "python.py"}],改成
console = [{'script': "python.py"}],
終於........
休息了,真好!
沒有留言:
張貼留言