使用cx

需要使用到的文件wxapp.py, read_file.py, setup.py

代码如下:

#!/usr/bin/env python# -*- coding: utf-8 -*-#file: wxapp.py

import wximport osimport sysimport read_file

class frame(wx.frame): def __init__(self): wx.frame.__init__(self, parent=none, title=’hello from cx_freeze’) panel = wx.panel(self) closemebutton = wx.button(panel, -1, ‘close me’) wx.evt_button(self, closemebutton.getid(), self.oncloseme) wx.evt_close(self, self.onclosewindow) pushmebutton = wx.button(panel, -1, ‘push me’) wx.evt_button(self, pushmebutton.getid(), self.onpushme) sizer = wx.boxsizer(wx.horizontal) sizer.add(closemebutton, flag=wx.all, border=20) sizer.add(pushmebutton, flag=wx.all, border=20) panel.setsizer(sizer) topsizer = wx.boxsizer(wx.vertical) topsizer.add(panel, flag=wx.all | wx.expand) topsizer.fit(self)

def oncloseme(self, event): obj = read_file.printcontent() if getattr(sys, ‘frozen’, none): path = os.path.dirname(sys.executable) else: path = os.path.dirname(__file__) path = os.path.join(path, “read_file.py”) obj.show_content(path)

def onpushme(self, event): wx.messagebox(‘i was pushed!’, ‘informational message’)

def onclosewindow(self, event): self.destroy()

class app(wx.app): def oninit(self): frame = frame() frame.show(true) self.settopwindow(frame) return true

app = app(1)app.mainloop()

代码如下:

#!/usr/bin/env python# -*- coding: utf-8 -*-#file: read_file.py

class printcontent(object): def show_content(self, path): f = open(path) for line in f: print line f.close()

代码如下:

#!/usr/bin/env python# -*- coding: utf-8 -*-#file: setup.py

# a simple setup script to create an executable running wxpython. this also# demonstrates the method for creating a windows executable that does not have# an associated console.## wxapp.py is a very simple ‘hello, world’ type wxpython application## run the build process by running the command ‘python setup.py build’## if everything works well you should find a subdirectory in the build# subdirectory that contains the files needed to run the applicationimport sysfrom cx_freeze import setup, executable

build_exe_options = {“optimize”: 2, “include_files”: [“read_file.py”]}

base = noneif sys.platform == ‘win32’: base = ‘win32gui’

executables = [executable(script=’wxapp.py’, base=base, targetname=”demo.exe”, compress=true, icon=”py.ico”)]

setup(name=’wxapp’, version=’0.1′, description=’sample cx_freeze wxpython script’, options = {“build_exe”: build_exe_options}, executables=executables)

打开cmd进入代码所在目录,然后输入:

代码如下:

python setup.py bdist_msi

然后会生成build和dist两个文件夹,build文件夹里存放的是exe可执行文件和所依赖的库,直接把整个文件夹复制给别人就可以通过双击exe文件运行了,dist文件夹下是build文件夹的安装程序,直接传dist文件夹下的安装包给朋友,朋友运行安装包后会得到和build一样的文件夹,路径由用户自己选择

至于setup.py里面的参数选项可以自己去官网查看相应的选项信息

Posted in 未分类