Python程式需要依賴本機安裝的Python庫,若想在沒有安裝Python的機器上運作,則需要打包分發,目前有兩個比較好用的工具:PyInstaller和py2exe。其中py2exe應用在windows下,而PyInstall則可應用windows、Linux以及Mac OS X上。
<code>#coding=utf-8</code>
<code>from</code> <code>distutils.core </code><code>import</code> <code>setup</code>
<code>import</code> <code>py2exe</code>
<code>includes </code><code>=</code> <code>[</code><code>"encodings"</code><code>, </code><code>"encodings.*"</code><code>]</code>
<code>#要包含的其它庫檔案</code>
<code>options </code><code>=</code> <code>{</code><code>"py2exe"</code><code>:</code>
<code> </code><code>{</code>
<code> </code><code>"compressed"</code><code>: </code><code>1</code><code>, </code><code>#壓縮</code>
<code> </code><code>"optimize"</code><code>: </code><code>2</code><code>,</code>
<code> </code><code>"ascii"</code><code>: </code><code>1</code><code>,</code>
<code> </code><code>"includes"</code><code>: includes,</code>
<code> </code><code>"bundle_files"</code><code>: </code><code>1</code> <code>#所有檔案打包成一個exe檔案</code>
<code> </code><code>}</code>
<code>}</code>
<code>setup (</code>
<code> </code><code>options </code><code>=</code> <code>options,</code>
<code> </code><code>zipfile</code><code>=</code><code>None</code><code>, </code><code>#不生成library.zip檔案</code>
<code> </code><code>console</code><code>=</code><code>[{</code><code>"script"</code><code>: </code><code>"main.py"</code><code>, </code><code>"icon_resources"</code><code>: [(</code><code>1</code><code>, </code><code>"Q.ico"</code><code>)] }]</code><code>#源檔案,程式圖示</code>
<code>)</code>
假如上面的源碼儲存為mysetup.py,則打包指令為 python mysetup.py py2exe 。
兩個用過的執行個體:
(1)、背景運作
<code> </code><code>windows</code><code>=</code><code>[{</code><code>"script"</code><code>: </code><code>"main.py"</code> <code>}]</code><code>#源檔案</code>
(2)、不得不有控制台視窗,且不能打包為一個exe檔案。(walker是因為調用了浏覽器)
<code>setup(</code>
<code> </code><code>console </code><code>=</code> <code>[{</code><code>'script'</code><code>: </code><code>"main.py"</code><code>}],</code>
<code> </code><code>options</code><code>=</code><code>{</code>
<code> </code><code>"py2exe"</code><code>:{</code>
<code> </code><code>"skip_archive"</code><code>: </code><code>True</code><code>,</code>
<code> </code><code>"unbuffered"</code><code>: </code><code>True</code><code>,</code>
<code> </code><code>"optimize"</code><code>: </code><code>2</code>
<code> </code><code>}</code>
本文轉自walker snapshot部落格51CTO部落格,原文連結http://blog.51cto.com/walkerqt/1249279如需轉載請自行聯系原作者
RQSLT