它根據import語句遞歸地掃描源代碼,並查找在標準python路徑中的模塊和源代碼目錄中的模塊(內建模塊)。用python寫的模塊的字節碼隨後被轉換成C代碼(可以通過使用marshal模塊轉換成代碼對象的數組構 造器),並產生壹個可自定義的配置文件,只包含程序使用了的模塊。 最後將生成的C代碼編譯並鏈接至余下的的python解釋器,產生壹個與妳的script執行效果完全壹樣的單獨文件。
顯然,freeze需要壹個C編譯器。但也有壹些工具並不需要。首先便是Gordon McMillan's installer,它在
/install1.html
它工作在Windows, Linux和至少是部分Unix變種上。
(註:在*nix下推薦此方式。通過make後得到壹個獨立的文件。)
另壹個便是Thomas Heller的 py2exe (只適用於Windows平臺),它在
/crew/theller/py2exe
(註:在win下推薦此方式,使用簡單,功能強大。缺點是會生成壹大堆文件。和必須要python.dll)
第三個是Christian Tismer的 SQFREEZE,它將字節碼附在壹個特殊的python解釋器後面,解釋器負責找到這段代碼。Python 2.4可能會引入類似的機制。
其它工具包括Fredrik Lundh的 Squeeze 和 Anthony Tuininga的 cx_Freeze.