2019年11月10日 星期日

Python縮小執行檔



  • 緣由

    自己用Python的程式,當然沒問題。但是,在一個案子裏要把程式讓其他人使用,總不能讓他們先灌Python吧? 也就是說,最好就給他一個執行檔,打開就搞定了。
    需求就是從這來的。不過,自己Python的程度,算是比入門好一些些而已。因此,這事倒是花了些時間搞定。鑑於繁中的分享不多,就來做個分享文吧。開始囉。


  • 困擾是從好用的Anaconda來的

    開始學Python時,用的書推薦使用Anaconda,自己也就從這軟體開始。Anaconda真的是一個很好用的Python套件。灌完後,該有的模組,大概都有了。而且,模組列得清清楚楚,不必什麼事都進到命令視窗去處理。加上,本身又有Spyder做為開發的圖形介面。誠心奉上100個讚。
    只是,這次要把程式編譯成執行檔(.exe),卻是撞了牆。一個執行檔,編完後,是一個300MB的程式。打開這程式,要等個約莫一分鐘,程式才開始執行。經過這篇的說明,簡單說,如果要執行檔小,就不能用Anaconda啦。經過接下來的折騰,執行程式從300MB,變成5MB,結果令人很滿意的。


  • 痛苦重灌的過程

    移除Anaconda後,重新到Python網站下載最新版本。安裝完後,手動設定一下環境變數。接著開始更新一些東西。
命令:python -m pip install --upgrade pip setuptools
這一動問題不大,問題出在安裝matplotlib.
    用python畫一些工程圖,少不了matplotlib。不過,就是怎麼樣也安裝不成功,出了一堆error code。不過,基本上就是因為沒灌Visual studio。(其實,是不是真的需要,我也沒再驗證過。)
    不同python的版本,要安裝不同的visual studio版本。不過,現在Python 3.5以後的,安裝visual studio community 2015就可以了。不過,事情似乎沒這麼單純。因為default沒有灌VC++,因此,灌好了以後,要打開visual studio,開一個專案,然後,就會在這個過程中,安裝VC++,可參考這篇的做法喔。
    安裝完Visual studio,看來只是讓錯誤代碼,變成另一個。相信這結果,看倌們一定是不滿意的。


  • 救星Wheel的出現

    wheel檔,是有善心人士,把程式先編好。讓我們可以很容易的,去安裝這個程式。以matplotlib而言,可以到這邊來下載喔。配合不同的OS,會有不同的檔案。下載時,要看一下檔名喔。
    自己衝太前面了,灌了個Python 3.8,而這時Wheel的檔案,只支援python 3.6跟3.7。所以,只好把Python重新裝過。不過,這一下來就真的解決了問題。順利的縮小了執行檔。謝謝網路上眾多的善心人士的分享~