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

(0)

相关推荐

  • Python中.py文件打包成exe可执行文件详解

    前言 最近做了几个简单的爬虫python程序,于是就想做个窗口看看效果. 首先是,窗口的话,以前没怎么接触过,就先考虑用Qt制作简单的ui.这里用前面sinanews的爬虫脚本为例,制作一个获取当天sina头条新闻的窗口. 生成py文件后,运行该py文件,这里窗口我只是随便拖了几个组件进去,主要的text browser用于显示获取到的sinanews. 首先贴一下我的配置 官方下载: Python 3.3.3 PyQt5-5.2.1 for Py3.3(当安装完Python3.3后,安装对应P

  • 使用PyInstaller将Python程序文件转换为可执行程序文件

    Windows下采用PyInstall将py文件转换成exe可执行文件 好不容易写完的py文件,想做成exe文件,最开始选择用py2exe,结果生成的exe遇到两个问题, 1. py程序里print 的信息,cmd中执行tool后并没有显示在屏幕上: 2. 调用dll接口,执行py文件时是阻塞等待的,结果cmd中执行exe时,tool很快先返回了,接口还在运行,很诡异 一时找不到解决的办法,无奈弃用了,在网上找了pyinstall,试了一下,感觉功能更强大些... 安装PyInstaller之前

  • Python使用py2exe打包程序介绍

    一.简介 py2exe是一个将python脚本转换成windows上的可独立执行的可执行程序(*.exe)的工具,这样,你就可以不用装python而在windows系统上运行这个可执行程序. py2exe已经被用于创建wxPython,Tkinter,Pmw,PyGTK,pygame,win32com client和server,和其它的独立程序.py2exe是发布在开源许可证下的. 二.安装py2exe 从http://prdownloads.sourceforge.net/py2exe下载并

  • py2exe 编译ico图标的代码

    复制代码 代码如下: #setup.py from distutils.core import setup import py2exe setup( # targets to build windows = [{"script":"EDI_VIEW.py", "icon_resources": [(1, "edi.ico")]} ] )

  • 利用pyinstaller或virtualenv将python程序打包详解

    运行环境: CentOS6.5_x64 Python版本 : 2.6 使用pyinstaller打包 pyinstaller可以将python程序打包成二进制文件,打包后的文件在没有python的环境中也可以执行(但要有相关底层libc相关so文件).pyinstaller支持将python程序打包成单个文件,它所做的只是将文本转换成二进制,并不能给python提速,相反还会影响打包后程序的运行速度. 安装pyinstaller 官方网址:http://www.pyinstaller.org/

  • 利用PyInstaller将python程序.py转为.exe的方法详解

    前言 最近经常用到一个.py程序,但是每次在不同电脑上用,希望能把Python脚本发布为脱离Python平台运行的可执行程序,比如单个exe.PyInstalle满足要求. PyInstaller本身并不属于Python包.在安装 pyinstaller之前需把python环境配置好. 安装pyinstaller 下载pyinstaller 解压到F:\PyInstaller-2.1(自选)(可以去官网下载最新版) 安装pywin32 pywin32-217.win32-py2.7.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):    def __init__(self):        wx.Frame.__init__(self, parent=None, tit

  • python打包exe开机自动启动的实例(windows)

    一.背景 简单的写个.exe程序,没必要去学习mfc.c++等,可以学习python.python可以轻易的调用windows的api,轻松的实现你想干的事.下面就是实现打包的exe文件开机自动运行. 二.实现 #!/usr/bin/python # -*- coding: UTF-8 -*- import win32api import win32con class AutoRun(): def __init__(self): name = 'translate' # 要添加的项值名称 pat

  • Python打包exe时各种异常处理方案总结

    异常: You are using pip version 10.0.1, however version 21.1.1 is available. You should consider upgrading via the 'python -m pip install --upgrade pip' command. 方案: 运行 - > cmd - > 指令 python -m pip install --upgrade pip 找到Python目录下的 Scripts 添加到系统环境变量

  • Python打包exe文件一步步图解明了简单

    兄弟们,我来了!!! 实在是太忙了,没得时间更新,昨天下午这篇还是上周的草稿,太难了~ 当然,顺便再给它换个图标. 首先把你的代码准备好,尽量不要中文路径,容易报错. 这个是要用的模块 Pyinstaller 它不是Python默认有的模块,所以需要我们安装一下,直接 pip install Pyinstaller 不会安装模块的小伙伴参考:如何安装python模块, python模块安装失败的原因以及解决办法,看这样就安装好了. 模块安装好后我们开始打包,注意,所有的文件都尽量用英文,免得报错

  • 用python打包exe应用程序及PyInstaller安装方式

    目录 1.PyInstaller简介 2.PyInstaller安装 3. 准备需要的文件 4.使用Pyinstaller 5.参数的含义 6. 附圣诞树源文件 7. 源文件下载 1.PyInstaller简介 PyInstaller是一个跨平台的Python应用打包工具,支持 Windows/Linux/MacOS三大主流平台,能够把 Python 脚本及其所在的 Python 解释器打包成可执行文件,从而允许最终用户在无需安装 Python 的情况下执行应用程序. PyInstaller 制

  • python打包exe文件并隐藏执行CMD命令窗口问题

    目录 python打包exe文件并隐藏执行CMD命令窗口 Python打包exe程序避坑指南:没有安装包也能运行小程序 如果有问题看下面 总结 python打包exe文件并隐藏执行CMD命令窗口 虚拟环境安装 pyinstaller pip install pyinstaller  打包exe命令:(具体的命令网上资料很多) # 打包1个py文件,并隐藏执行窗口 pyinstaller -F -w main.py    # 打包1个py文件(-F),并隐藏执行窗口(-w),替换exe的ico图标

  • Python三种打包exe方法案例教程

    cxfreeze,pyinstaller,py2exe三种方式 目前网上能获取的免费的Python打包工具主要有三种:py2exe.PyInstaller和cx_Freeze.其中PyInstaller最新版只支持Python2.7,py2exe计划开发支持python3.x版本,但是目前还没有完成.只有cx_Freeze支持python3.X版本,也支持python2.X版本.个人也觉得cxfreeze比较简单,不容易出错. cxfreeeze有几种文件形式,msi和whl.msi是安装包,直

  • Python打包为exe详细教程

    一.安装 → pyinstaller 1.1 方式1:cmd 1. 调出运行窗口:win + r, 并输入 cmd 2. 切换到 pip.exe 目录(Scripts,参考如下:) cd C:\Users\Administrator\AppData\Local\Programs\Python\Python38-32\Scripts # D: # 若是其它盘,如 D # cd D:\xx 3. 执行命令 pip install pyinstaller 1. 切换到 pip.exe 的目录(找到你本

  • python打包生成的exe文件运行时提示缺少模块的解决方法

    事情是这样的我用打包命令:pyinstaller -F E:\python\clpicdownload\mypython.py打包了一个exe程序,但是运行时提示我缺 少bs4模块然后我就去查pyinstaller的使用方法,找到pyinstaller有一个-p参数: 1.设置导入路径(和使用PYTHONPATH效果相似).可以用路径分割符(Windows使用分号,Linux使用冒号)分割,指定多个目录. 2.也可以使用多个-p参数来设置多个导入路径 然后我找到bs4模块所在的目录E:\pyth

  • 使用虚拟环境打包python为exe 文件的方法

    使用过anaconda环境下打包py文件的一点感悟,使用的是pyinstaller+anaconda环境下打包py文件 打包: pyinstaller -F -w -i logo.ico xxxx.py -F:强制打包 -w:不带后台命令窗口 -i: 使用logo图标的地址 需要打包的文件 遇到的问题: 1.首先对于使用anaconda打包py文件是存在问题的: 1)打包出来的exe会很大,会打包很多关联库: 2)而其中的一些关联库是没有用,而导入这些库会拖慢程序运行的效率. 解决:使用虚拟环境

随机推荐