cx_Freeze :standalone python application

Official Website:cx_Freeze

使用PyQt設計者一定會發現一件事情,如果今天想要將已寫好的script放在其他Linux底下執行時,是否也要先一一安裝python, qt, sip, pyqt等等套件之後才能正常用運行我們使用PyQt寫出來的程式,答案基本上是肯定的,但是光想到這裡許多設計師可能會因此怯步,改換回其他GUI設計平台。為了解決這樣的一個問題,網路上已有一些套件可以製作standalone python app,如cx_Freeze, pyinstaller等,由於pyinstaller支援程度還不是很完善,這裡就介紹cx_Freeze為主。

從官方下載原始碼來編譯,編譯方式如下:
python setup.py build
安裝cx_Freeze:
python setup.py install
透過上述兩道指令後就可以將cx_Freeze安裝至你的python的site-packages裡。cx_Freeze的使用方式也很簡單,操作方式如下:

找一個你已經寫好的PyQt script,這裡以PyQtLoader.py為例:
cxfreeze PyQtLoader.py
產生好的檔案會放置在dist這個資料夾裡,如果你觀察夠仔細的話你會發現它只是把一些執行PyQtLoader.py所需要的library給彙整打包起來,但是光只是這麼一個簡單的PyQtLoader程式,彙整出來的獨立執行檔總共需要約略135mb的檔案空間,檔案會這麼大多是因為Qt的Library所造成的(基本上執行一個單純的python程式只需要概略為5mb的libray),如何產生高效能且檔案小的PyQt獨立原始檔,這部份可能要牽扯到如何精簡化Library,僅保留所需的函式,但是這部份只有Qt開發團隊才有權利去更動。所以如果你仍然期望著檔案小效能高的程式,建議你還是轉回Qt甚至使用Gtk+吧!

No comments:

Post a Comment

Orange - data analysis tool

Installation pip install orange3 Run orange python -m Orange.canvas