视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
使用cx_freeze把python打包exe示例
2020-11-27 14:30:00 责编:小采
文档

需要使用到的文件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里面的参数选项可以自己去官网查看相应的选项信息

下载本文
显示全文
专题