最近使用Python为项目开发一款测试工具。因为使用者在另一个部门,领导希望能把Python脚本发布为脱离Python平台运行的可执行程序,最好是单个的exe文件,同时也保护我们部门的源码。PyInstaller恰满足这个需求。目前PyInstaller的最新版本是2.0,支持Python2.7。接上贴,本文将讨论怎样使用PyInstaller2将Python脚本文件转化成Windows可执行exe文件。文中提到的所有工具都能下载到。本文博客园balian原创,欢迎转载,转载请说明原作者。

安装PyInstaller2步骤请见:
使用PyInstaller2将Python脚本转化为可执行文件(上-安装部分)
http://www.cnblogs.com/balian/archive/2012/11/21/2780503.html

main.py是一个简单的Python脚本,在C盘根目录的文件夹scripts中。

'''
main.py
'''
print 'main.py - Hello World!'

 

要将main.py转换为单个exe文件,需要在Pyintstller2安装文件夹下运行如下命令:

python pyinstaller.py -F c:\scripts\main.py

该命令具体执行效果如下图。

image

本文来自博客园balian。单个的main.exe文件可以在文件夹C:\pyinstaller2\main\dist找到,如图。现在main.exe可以用来发布了。

image

命令中参数-F表示生成单个exe文件。如果没有该参数,需要发布的就是一个文件夹了,如下图。

image

PyInstaller2对于Python内部模块的支持如何,使用同样的命令对如下代码打包,没有任何问题。

'''
main.py
'''
import time
print 'main.py - Hello World!'
time.sleep(10)
 

下面看看PyInstaller2对于用户自定义的模块怎么处理。在C盘根目录的文件夹scripts中,有文件test_module.py和main.py。分别如下:

'''
test_module.py
'''
def test_print():
    print 'test_module.py - Import module successfully.!\n'

以及

'''
main.py
'''
import time
import test_module

print 'main.py - Hello World!'
time.sleep(5)
test_module.test_print()
time.sleep(5)

仍旧使用同样的命令打包成单一exe文件,PyInstaller2表示毫无压力。

image

posted on 2012-11-22 11:38  balian  阅读(2725)  评论(3编辑  收藏  举报