最近在研究利用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应用程序的时候就会自带生成一个命令行窗口。