假如你用python写了个小程序,想给别人用或者给别人演示,但他电脑里没装python、wxpython等,这时候你可以试试py2exe,它是一个将python脚本转换成windows上的可执行程序(*.exe)的工具。安装就不多说了,简单介绍一下使用方法

一般来说,使用py2exe的步骤如下

1. 写一个用于发布程序的设置脚本

如果你有一个名为helloworld.py的python脚本,现在想把它转换为exe可执行程序,可以在helloworld所在目录新建一个setup.py文件(文件名随意),内容如下:

#!/usr/bin/env python
from distutils.core import setup
import py2exe setup(console=["helloworld.py"])

2. 打包命令输入

在终端(Windows里的CMD,Linux里的shell)中输入:

python setup.py py2exe

执行命令后当前目录中有两个文件夹build和dist,其中build中是临时文件,dist中有生成的helloworld.exe文件和必要的库文件,发布时将整个dist目录打包即可。

3. 将控制台程序改成窗体程序

上面的例子是简单的控制台程序,如果要转换的程序是由pygtk、pyqt或wxpython等设计的GUI程序,则需要对setup.py文件进行修改,具体情况如下:

3.1 界面元素全部由python代码生成(区别于使用XRC文件的方式)

这种情况下将上面的setup.py文件中的console=xxx改为windows=xxx即可

3.2 界面元素使用XRC机制设计

这种情况稍微复杂,需要将设计中的*.xrc文件包括到dist目录中,具体方法为修改setup.py为下面这种形式:

from distutils.core import setup
import glob
import py2exe setup(name="test",
windows=["main.py"], #假设设计文件为main.py
data_files=[("",["gui.xrc",]),]
)

上面的setup.py中的data_files=XXX 是要介绍的第三部分内容——指定额外的文件,即如果想在软件发布时包括一些额外必需的文件如icons、images等。这种情况下setup.py文件的写法如下:

from distutils.core import setup
import glob
import py2exe setup(name="test",
windows=["main.py"],
data_files=[("dir1", ["a", "b","c"]),
("dir2",["d", "e", "f"])]
)

上面这个setup.py执行后就会在dist目录中生成dir1、dir2两个字目录,并分别将a、b、c和d、e、f复制到这两个字目录中,明白后再回头看带XRC文件的那个setup.py,很简单吧,就是把gui.xrc包括到dist目录中。

py2exe使用总结的更多相关文章

  1. arcpy+PyQt+py2exe快速开发桌面端ArcGIS应用程序

    前段时间有一个项目,大体是要做一个GIS数据处理工具. 一般的方法是基于ArcObjects来进行开发,因为我对ArcObjects不太熟悉,所以就思考有没有其他简单快速的方法来做. 在查看ArcGI ...

  2. py2exe使用中遇到的几个问题

    问题: 在使用py2exe对所写的python脚本打包成.exe可执行程序时,遇到两个问题: 问题1: RuntimeError: maximum recursion depth exceeded w ...

  3. py2exe使用方法

    一.简介 py2exe是一个将python脚本转换成windows上的可独立执行的可执行程序(*.exe)的工具,这样,你就可以不用装python而在windows系统上运行这个可执行程序. py2e ...

  4. py2exe 打包scipy时遇到的问题

    最近写了个小程序,用PyQt5做的界面,写完之后用py2exe打包成独立的exe文件,运行正常. 后来由于需要,调用SciPy.io.loadmat,改写setup.py,打包之后运行错误,提示: T ...

  5. [Python] py2exe先知其然

    #Hello.py import Tkinter root=Tkinter.Tk() label=Tkinter.Label(root,text="Hello,py2exe!") ...

  6. Windows下利用py2exe生成静默运行的命令行程序

    py2exe是python的第三方库,可以利用它将你的python脚本编译成可执行文件(exe),而在实际的开发过程中生成的dos窗口很影响用户体验,建议按以下方式让exe静默运行. 首先将你的pyt ...

  7. Python打包-py2exe使用

    Py2exe 64位下载地址:http://download.csdn.net/detail/henujyj/8532827 Py2exe 32位下载地址:https://sourceforge.ne ...

  8. python 转 exe -- py2exe库实录

    本文基于windows 7 + python 3.4 把python程序打包成exe,比较好用的库是py2exe 其操作步骤是: --> 编写python程序 --> 再额外编写一个导入了 ...

  9. python+pygame游戏开发之使用Py2exe打包游戏

    最近在用python+pygame 开发游戏,写完以后在分享给朋友玩的时候遇到了很大的问题,只有搭建了环境才能运行python脚本. 这会吓退99%以上的人……所以把我们的游戏打包(注意是打包而不是编 ...

  10. pyqt5 笔记(三)py2exe 实现代码打包exe

    python3.4 安装64位的版本 py2exe 下载地址: https://pypi.python.org/pypi/py2exe/0.9.2.0#downloads cmd——>进入pyf ...

随机推荐

  1. CF 833 B. The Bakery

    B. The Bakery http://codeforces.com/contest/833/problem/B 题意: 将一个长度为n的序列分成k份,每份的cost为不同的数的个数,求最大cost ...

  2. cf 448c Painting Fence

    http://codeforces.com/problemset/problem/448/C 题目大意:给你一个栅栏,每次选一横排或竖排染色,求把全部染色的最少次数,一个点不能重复染色. 和这道题有点 ...

  3. python全栈开发- 前⽅⾼能-迭代器

    python_day_12 今日主要内容 1, 函数名的应用,第一类对象 函数名可以像变量一样进行使用 1.赋值 2.作为list元素 3.作为参数 4.作为返回值 2, 闭包 内部函数访问外部函数的 ...

  4. Windows 下在 Python (Anaconda) 中安装 Dlib 库

    0. 引言 介绍在 Windows  操作系统下,在 Python 的 Anaconda 集成环境中,安装 Dlib 库 : 对于不了解源码编译的,或者利用 cmake 方法失败的,可以尝试下此方法: ...

  5. 算法笔记(c++)-使用递归函数逆序一个栈

    ---恢复内容开始--- 使用递归函数逆序一个栈 题目:使用递归函数,不借助其他数据结构逆序一个栈. 我的思路:使用递归函数保存栈中变量. 递归函数分两个,一个获取并移除栈底元素,另一个负责逆序.其实 ...

  6. DruidDataSource源码分析

    最近公司要求基于阿里的DruidDataSource来做一个连接池监控 , 正好之前没有看过DruidDataSource的源码 , 便自己看了四个多小时写了一些自己的理解 , 给大家分享一下 , 如 ...

  7. 当Kubernets遇上阿里云 -之七层负载均衡(一).

    我们知道Kubernetes的service只能实现基于4层的负载均衡,无法提供7层之上的许多特性,诸如基于URL的负载均衡,SSL支持,三方授权等等:Ingress可以实现七层负载均衡的许多功能,唯 ...

  8. MathExam第二次作业(升级版)

    MathExamLv2——林华伟 211506319 陈珍 211406263   一.预估与实际 PSP2.1 Personal Software Process Stages 预估耗时(分钟) 实 ...

  9. Linux系统LVS搭建笔记

    因为客户是国有企业,且一次性购买了14台服务器(16核),14台中暂且先用8台,其中LVS使用5台,NFS一台主要为了共享WEB系统(多台电脑的1.5T的硬盘容量浪费了).MySQL两台,Memcac ...

  10. 关于算法的时间复杂度O(f(n))

    (一)算法时间复杂度定义: 在进行算法分析时,语句总的执行次数T(n)是关于问题规模n的函数,进而分析T(n)随n的变化情况并确定T(n)的数量级.算法的时间复杂度,也就是算法的时间量度,记作:T(n ...