最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

使用cx_freeze把python打包exe示例

来源:懂视网 责编:小采 时间:2020-11-27 14:30:00
文档

使用cx_freeze把python打包exe示例

使用cx_freeze把python打包exe示例:需要使用到的文件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):
推荐度:
导读使用cx_freeze把python打包exe示例:需要使用到的文件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):

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

文档

使用cx_freeze把python打包exe示例

使用cx_freeze把python打包exe示例:需要使用到的文件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):
推荐度:
标签: 打包 exe 示例
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top