作者是 在线疯狂
Python是一种简单而强大的编程语言,适用于编写脚本,甚至于应用程序的开发。Python可用的各种GUI包使得利用Python编写全功能的应用变为可能。这很好,但你有没有想过将你编写的Python脚本转化为可执行文件?这似乎是一个很赞的主意,有许多原因!你可以在没有Python解释器的情况下重新部署你的应用。终端用户不需要在他的机器上安装Python。你可以将你的应用闭源(很不幸)等等……这篇文章可以告诉你如何从你的Python脚本生成win32可执行文件。
这篇教程将会一步一步的介绍如何从Python脚本创建Win32可执行文件。请确保你的系统里已经安装了下面的程序。
Python. Get Python from http://www.python.org/download/ and install on your machine.
py2exe. Get py2exe from http://www.py2exe.org/
命令行程序
下面的示例代码会在命令行里打印一行标题,以及从1到10的数字。
test.py
print "Python script to exe test program"
count = 0
while count < 10:
print "count = " + str(count) +"\n"
count = count + 1
- 1
- 2
- 3
- 4
- 5
- 6
- 7
把这段代码保存在test.py(或者别的以.py为后缀的)文件中。用Python解释器首先测试并成功运行这段代码。要完成这一步,只需要在命令行里输入“python test.py”。你应当在命令行里看到下面的输出。
我们的Python脚本已经准备好了。现在我们还需要创建一个setup脚本。所谓的setup脚本其实就是另外一个Python脚本,在这个脚本里我们导入py2exe包,并从distutils包里导入setup脚本。此外,我们在这个文件里指定哪一个脚本作为可执行程序的入口点。创建一个新文件命名为setup.py并把下面的代码粘贴进去。
setup.py
from distutils.core import setup
import py2exe
setup(console=['test.py'])
- 1
- 2
- 3
- 4
这段代码简单明了。在setup.py中导入setup和py2exe然后以入口点脚本的名字为参数调用setup()函数。现在可以运行这个脚本并创建可执行文件了。创建可执行文件时,在命令提示符里运行“python setup.py py2exe”。你可以在命令行里看到许多输出。最后你可以看到下图所示的输出内容。
构建可执行文件的过程到此结束。现在你应该可以在\dist子目录下看到test.exe文件。将dist子目录移动到合适的位置然后运行test.exe,你可以看到下面的命令行输出。
GUI应用程序
我们已经成功将Python脚本转化为一个可执行命令行应用程序。下面我们来试试从Python脚本创建一个GUI可执行程序吧。使用Python创建GUI时,我们会用到Tkinter(Tk Interface)作为GUI工具包。从一个Tkinter-Python GUI脚本创建可执行文件非常直观。只要遵照我们在生成命令行程序时的步骤即可创建一个GUI可执行程序。
创建一个新文件,将下面的代码粘贴进去,保存并命名为“gui.py”。
gui.py
from Tkinter import *
frmMain = Tk()
label = Label(frmMain, text="Welcome to py2exe!")
label.pack()
frmMain.mainloop()
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
这个代码也很直观,我们导入Tkinter工具包,创建主窗体,创建一个标签并将其调整为内容的大小并进入程序的主循环。试着在命令行里输入“python gui.py”来运行这段脚本。如果一切顺利,你应该看到下面的窗口。
目前为止一切顺利。现在让我们看看我们怎样从脚本构建windows可执行程序。创建一个新文件命名为setup.py并将下面的代码粘贴进去。
setup.py
from distutils.core import setup
import py2exe
setup(console=['gui.py'])
- 1
- 2
- 3
- 4
构建可执行文件时,在命令提示符里运行“python setup.py py2exe”。一旦构建过程完成,(将写的脚本全部)移动到\dist子目录下并通过在命令行里键入“gui.exe”来运行这个可执行文件。现在你应该看到与前面用Python脚本创建的一样的窗体。
解决 py2exe打包后,总是多显示一个DOS黑色窗口
其中把 console 更改为 windows 即可,重新打包
多个文件的情况下,只要 入口文件setup(console=['gui.py'])就行,如果脚本里有用到配置文件,那么需要手动拷贝到.exe同一个目录下,否则会有异常