PyInstaller将python脚本打包成exe可执行程序
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PyInstaller将python脚本打包成exe可执行程序相关的知识,希望对你有一定的参考价值。
一、PyInstaller说明
pyinstaller是一个第三方模块,托管在github上,它是一个把python脚本及其依赖的模块,打包成一个独立的可执行程序,使其能运行在没有安装python环境的机器上。支持Linux/unix /mac 及windows,但注意的是,在什么平台上打包,就会生成对应平台可执行的独立程序,如在windows上打包会生成exe的可执行文件。本文所演示的就是在windows平台使用pyinstaller打包一个简单的exe程序。
二、原始脚本内容如下:
1、生成一注双色球代码如下:
def CaiSeQiu(num=1): num = int(num) p = 1 with open("tmp",‘w‘) as f: while p <= num: LAN = [] L = [] while len(L) <= 5: L = LAN.append(random.randrange(1, 34)) L = sorted(set(LAN)) BLUE = random.randrange(1, 17) print("红球: %s, 蓝球: %s") % (L, BLUE) p += 1 if __name__ == "__main__": CaiSeQiu()
执行会生成如下:
红球: [10, 13, 20, 24, 28, 29], 蓝球: 9
三、使用PyInstaller打包成可执行的exe程序
1、环境
python2.7.13 ,为了打包成有图形化的可执行程序需要安装wxpython模块,pip install wxpython
带有图形化的可执行程序 生成双色球.
2、代码如下:
#!/usr/bin/python # -*- coding=utf-8 -*- # by author San at 2016-03-03 import random import sys import wx #清除生成的双色球 def onclear(event): content.SetValue(‘‘) def CaiSeQiu(event,num=1): num = int(num) p = 1 with open("tmp",‘w‘) as f: while p <= num: LAN = [] L = [] while len(L) <= 5: L = LAN.append(random.randrange(1, 34)) L = sorted(set(LAN)) BLUE = random.randrange(1, 17) content.SetValue("红球: %s, 蓝球: %s" % (L, BLUE)) p += 1 app = wx.App() frame = wx.Frame(None, title="彩色球生成器v1.0", size=(420, 350)) panel = wx.Panel(frame) sBox = wx.BoxSizer() vBox = wx.BoxSizer(wx.VERTICAL) content = wx.TextCtrl(panel) btn1 = wx.Button(panel, label="生成") btn2 = wx.Button(panel, label="清除") sBox.Add(btn1, proportion=1, flag=wx.EXPAND | wx.ALL, border=5) sBox.Add(btn2, proportion=1, flag=wx.EXPAND | wx.ALL, border=5) vBox.Add(sBox, proportion=1, flag=wx.EXPAND | wx.ALL, border=5) vBox.Add(content, proportion=5, flag=wx.EXPAND | wx.ALL, border=5) btn1.Bind(wx.EVT_BUTTON, CaiSeQiu) btn2.Bind(wx.EVT_BUTTON, onclear) panel.SetSizer(vBox) frame.Show() app.MainLoop()
保存为CaiseQiu.pyw 双击执行如图:
说明:这个pyw后缀的python脚本需要要安装有python的系统上才能执行,但是没法在没有安装python环境的系统执行,因此需要pyinstaller打包成exe文件
3、pyinstaller打包成caiseqiu.exe
将caiseqiu.pyw放到一个非英文目录(c:\mypythonexe\)下,打开cmd -->cd c:\mypythonexe
如图:
执行:pyinstaller -F -w caiseqiu.pyw 此时会出现类似 如下信息
3845 INFO: Building COLLECT out00-COLLECT.toc completed successfully.
表示打包成功;此时目录下有如下信息
c:\MyPythonexe 的目录
2017/07/13 14:46 <DIR> .
2017/07/13 14:46 <DIR> ..
2017/07/13 14:46 <DIR> build
2017/07/12 18:32 1,264 caiseqiu.pyw
2017/07/13 14:46 873 caiseqiu.spec
2017/07/13 14:46 <DIR> dist
2 个文件 2,137 字节
4 个目录 4,577,239,040 可用字节
在dist目录下就会有一个caiseqiu.exe 如下:
双击执行如下:
点生成即生成一柱,清除功能。
到这里我们使用wxpython PyInstaller模块完成windows平台 可执行exe程序打包。
本文出自 “学无止境,学以致用” 博客,请务必保留此出处http://dyc2005.blog.51cto.com/270872/1947108
以上是关于PyInstaller将python脚本打包成exe可执行程序的主要内容,如果未能解决你的问题,请参考以下文章
详解python文件打包成exe(pyinstaller简介.安装.打包.常见问题)