Wednesday, December 30, 2015

Python: Compile Python Script to Binary Executable

Summary

开贴介绍Python脚本文件转化为.exe的方法。为更好的理解下面的过程,请按照示例步骤操作,准备工作需要安装PyinstallerwxPython

Example

先制作一个演示程序app.py,
1
2
3
4
5
6
#!/usr/bin/env python
import wx
app = wx.App(False)
frame = wx.Frame(None, wx.ID_ANY, "Hello World")
frame.Show(True)
app.MainLoop()
在Python Shell中执行上面这段代码,弹出Fig. 1窗口。
Fig. 1
创建.exe文件
启动Windows之CMD,将当前目录定位至app.py所在文件夹之下,键入
1
pyinstaller.exe --onefile --windowed app.py
稍等片刻,运行结束出现如Fig. 2提示,app.exe文件输出在当前目录之子目录dist。
Fig. 2
下面来解释一下上面命令中的选项:
  • --onefile指定所有相关的文件都打包至一个文件,如果不指定,输出app.exe文件周围会出现很多与之相关的文件
  • --windowed避免运行时出现控制台窗口(Console Window),若这一程序没有图形操作,这个选项可以忽略
  • app.py输出程序的主要源文件,这一文件名称将来会被用来命名.exe文件,或者,也可以另其指定名称,以--name选项命名。
这里注意不需要声明引入很多package,因为代码中已经包含这些声明。
在我的机器上,最终的app.exe文件达到8.61MB。这一文件真的是很大,因为Python解码器、程序代码和所有必需的Packages(命令指定--onefile选项)。尽管这很简单,但你要在输出之前了解这些内容。
After the build, an app.spec file will be created. This file contains all of the options used to run PyInstaller, and can be fed back into PyInstaller for future builds in place of the command line options, if desired.
添加Icon
在IconEden上为刚刚创建的app.exe文件自定义一个Icon,将此Icon置于app.py相同目录,命令稍加修改如下:
1
pyinstaller.exe --onefile --windowed --icon=app.ico app.py
稍等编译,编译完成后出现的app.exe文件如下:
Fig. 3
Matlab调用
正常

References

[3] IconEden.

No comments:

Post a Comment