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