把python代碼編譯成exe文件,及脫離python環境運行py


 

把python代碼編譯成exe文件是一件很酷的事情,有很多軟件都能實現這個功能。

1. py2exe

先下載文件(鏈接),安裝比較簡單,一路下一步就行了。

創建一個例子文件foobar.py:
print "foobar"

創建一個安裝文件setup.py:
from distutils.core import setup
import py2exe
setup(console=['foobar.py'])

執行:python setup.py py2exe

2. pyinstaller

先下載文件(鏈接),只要解壓縮到合適的位置即可。

創建一個例子文件foobar.py:
print "foobar"

以下操作在解壓縮后的目錄里進行。

配置pyinstaller:python Configure.py

生成spec文件:python Makespec.py -F -c foobar.py

執行:python Build.py foobar/foobar.spec
ps: py2exe 也可以打成只有一個 exe 包,不帶 library.zip 的。
原文:http://hi.baidu.com/thinkinginlamp/blog/item/9f424954862d1551564e0001.html
[精彩] 關於脫離python環境運行的問題,再次重申。
http://wiki.woodpecker.org.cn/moin/PyProgFaq里面已經講很清楚了。
特轉貼過來,請大家根據情況來選擇適合的方式。

如果你只是希望用戶運行一個單獨的程序而不需要預先下載一個python的發行版,則並不需要將Python代碼編譯成C代碼。有很多工具可以找出程序依賴的模塊並將這些模塊 與程序綁定在一起以產生一個單獨的執行文件。 

其中一種工具就是freeze tool, 它作為Tools/freeze被包含在python的代碼樹中。它將python字節碼轉換成C數組,和一個可將你所有模塊嵌入到新程序中的編譯器,這個編譯器跟python模塊鏈接在一起。 

它根據import語句遞歸地掃描源代碼,並查找在標准python路徑中的模塊和源代碼目錄中的模塊(內建模塊)。用python寫的模塊的字節碼隨后被轉換成C代碼(可以通過使用marshal模塊轉換成代碼對象的數組構 造器),並產生一個可自定義的配置文件,只包含程序使用了的模塊。 最后將生成的C代碼編譯並鏈接至余下的的python解釋器,產生一個與你的script執行效果完全一樣的單獨文件。 

顯然,freeze需要一個C編譯器。但也有一些工具並不需要。首先便是Gordon McMillan's installer,它在 

 http://www.mcmillan-inc.com/install1.html 

它工作在Windows, Linux和至少是部分Unix變種上。 
(注:在*nix下推薦此方式。通過make后得到一個獨立的文件。)

另一個便是Thomas Heller的 py2exe (只適用於Windows平台),它在 

 http://starship.python.net/crew/theller/py2exe 

(注:在win下推薦此方式,使用簡單,功能強大。缺點是會生成一大堆文件。和必須要python.dll)

第三個是Christian Tismer的  SQFREEZE,它將字節碼附在一個特殊的python解釋器后面,解釋器負責找到這段代碼。Python 2.4可能會引入類似的機制。 

其它工具包括Fredrik Lundh的  Squeeze 和 Anthony Tuininga的  cx_Freeze.
原文:http://www.chinaunix.net/jh/55/687066


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM