最近在研究利用python制作windows下的应用程序,遇到的各种坑,总结一下。
步骤:
1、要利用python制作exe应用程序,先利用wxpython制作windows底下的gui界面窗口。
a、安装wxpython,cmd命令行模式底下进行安装,本机安装的是python3.6.4,所以可以使用
pip install wxpython
进行安装,(可以使用pip list)查看是否已经安装了wxpython
b、进行代码编写。
import wx ########################################################################### ## Class hello ########################################################################### class hello( wx.Frame ): def __init__( self,*args, **kw): wx.Frame.__init__ ( self,*args, **kw) self.SetSizeHintsSz( wx.DefaultSize, wx.DefaultSize ) bSizer3 = wx.BoxSizer( wx.VERTICAL ) self.m_textCtrl1 = wx.TextCtrl( self, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.DefaultSize, 0 ) bSizer3.Add( self.m_textCtrl1, 0, wx.ALL, 5 ) self.m_button1 = wx.Button( self, wx.ID_ANY, u"MyButton", wx.DefaultPosition, wx.DefaultSize, 0 ) bSizer3.Add( self.m_button1, 0, wx.ALL, 5 ) self.SetSizer( bSizer3 ) self.Layout() self.Centre( wx.BOTH ) self.Bind(wx.EVT_BUTTON,self.OnClick,self.m_button1)
def OnClick( self,event): wx.MessageBox(self.m_textCtrl1.GetValue()) app=wx.App() frm=hello(None,) frm.Show() app.MainLoop()
2、代码编写好了就可以利用installer这个库来生成exe应用程序,碰上坑之一就是网上查看资料去研究py2exe,结果这二货居然多年未更新,不支持python3.6.4
a、安装installer,在命令行底下运行
pip install installer
b、在命令行模式底下,切换到.py所在的目录,运行命令
installer -F hello.py --noconsole
参数说明:-F可以只生成一个exe文件,没加这个参数会生成一大堆的文件,
--noconsole这个参数可以使运行应用程序的时候不会出现命令行窗口,不然一运行.exe应用程序的时候就会自带生成一个命令行窗口。