使用cx_freeze把python打包exe示例
需要使用到的文件wxapp.py, read_file.py, setup.py
#!/usr/bin/env python
# -*- coding: utf-8 -*-
#file: wxapp.py
import wx
import os
import sys
import 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 application
import sys
from cx_freeze import setup, executable
build_exe_options = {"optimize": 2,
"include_files": ["read_file.py"]}
base = none
if 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里面的参数选项可以自己去官网查看相应的选项信息
推荐阅读
-
python使用内存zipfile对象在内存中打包文件示例
-
使用虚拟环境打包python为exe 文件的方法
-
记录使用cx_Freeze打包Python成exe可执行程序
-
Python使用py2exe打包程序介绍
-
使用Python中tkinter库简单gui界面制作及打包成exe的操作方法(二)
-
把Python项目打包成exe文件
-
使用cx_freeze把python打包exe示例
-
python安装exe打包库命令pip install pyinstaller报错,使用pip国内镜像解决方法
-
使用Py2Exe for Python3创建自己的exe程序示例
-
用PyInstaller把Python代码打包成单个独立的exe可执行文件