py2exe使用总结
假如你用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使用总结的更多相关文章
- arcpy+PyQt+py2exe快速开发桌面端ArcGIS应用程序
前段时间有一个项目,大体是要做一个GIS数据处理工具. 一般的方法是基于ArcObjects来进行开发,因为我对ArcObjects不太熟悉,所以就思考有没有其他简单快速的方法来做. 在查看ArcGI ...
- py2exe使用中遇到的几个问题
问题: 在使用py2exe对所写的python脚本打包成.exe可执行程序时,遇到两个问题: 问题1: RuntimeError: maximum recursion depth exceeded w ...
- py2exe使用方法
一.简介 py2exe是一个将python脚本转换成windows上的可独立执行的可执行程序(*.exe)的工具,这样,你就可以不用装python而在windows系统上运行这个可执行程序. py2e ...
- py2exe 打包scipy时遇到的问题
最近写了个小程序,用PyQt5做的界面,写完之后用py2exe打包成独立的exe文件,运行正常. 后来由于需要,调用SciPy.io.loadmat,改写setup.py,打包之后运行错误,提示: T ...
- [Python] py2exe先知其然
#Hello.py import Tkinter root=Tkinter.Tk() label=Tkinter.Label(root,text="Hello,py2exe!") ...
- Windows下利用py2exe生成静默运行的命令行程序
py2exe是python的第三方库,可以利用它将你的python脚本编译成可执行文件(exe),而在实际的开发过程中生成的dos窗口很影响用户体验,建议按以下方式让exe静默运行. 首先将你的pyt ...
- Python打包-py2exe使用
Py2exe 64位下载地址:http://download.csdn.net/detail/henujyj/8532827 Py2exe 32位下载地址:https://sourceforge.ne ...
- python 转 exe -- py2exe库实录
本文基于windows 7 + python 3.4 把python程序打包成exe,比较好用的库是py2exe 其操作步骤是: --> 编写python程序 --> 再额外编写一个导入了 ...
- python+pygame游戏开发之使用Py2exe打包游戏
最近在用python+pygame 开发游戏,写完以后在分享给朋友玩的时候遇到了很大的问题,只有搭建了环境才能运行python脚本. 这会吓退99%以上的人……所以把我们的游戏打包(注意是打包而不是编 ...
- pyqt5 笔记(三)py2exe 实现代码打包exe
python3.4 安装64位的版本 py2exe 下载地址: https://pypi.python.org/pypi/py2exe/0.9.2.0#downloads cmd——>进入pyf ...
随机推荐
- MySql Host is blocked because of many connection errors; unblock with 'mysqladmin flush-hosts' 的解决方法
解决方法如下: 方法 1.在线修改提高允许的max_connection_errors数量: A. 登录Mysql数据库查看max_connection_errors: mysql>show ...
- scikit-learn API
scikit-learn API 这是scikit-learn的类和函数参考.有关详细信息,请参阅完整的用户指南,因为类和功能原始规格可能不足以提供有关其用途的完整指南. sklearn.base:基 ...
- Vue 数组封装和组件data定义为函数一些猜测
数组封装 var vm={ list:[0,1] } var push=vm.list.push;//把数组原来的方法存起来 vm.list.push=function(arg){//重新定义数组的 ...
- async+await 让界面飞,让双手爽
.net 4.5已经发布很久了,但是一直也没有静下心来好好的研究微软给开发者带来的喜悦. 今天我将简单的介绍下 async + await 这对搭档的出现,如何让频繁假死的界面飞起来(其实只是不再阻塞 ...
- C++自学第一课:函数
此贴并非教学,主要是自学笔记,所述内容只是些许个人学习心得的记录和备查积累,难以保证观点正确,也不一定能坚持完成. 如不幸到访,可能耽误您的时间,也难及时回复,贴主先此致歉.如偶有所得,相逢有缘,幸甚 ...
- loadrunner12安装教程
全套五个文件: 独立安装包,插件包,LR安装包,语言包,版本说明书 loadrunner 12安装教程 1.首先下载Loadrunner12安装包.下载下来将会有四个安装包. HP_LoadRunne ...
- ubuntu/linux系统中安装jdk以及eclipse(附图解详细步骤)
1.首先得先下载JDK和eclipsejdk下载网址:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-21 ...
- [SHELL]查看端口,文件,服务关系的四个命令netstat,lsof,fuser,nmap
一,netstat (1)简介 netstat主要是用来打印系统网络的状态信息,当输入netstat后,输出如下: 可以看出,netstat的输出分为两个部分组成: 一个是Active Interne ...
- 高可用Kubernetes集群-8. 部署kube-scheduler
十.部署kube-scheduler kube-scheduler是Kube-Master相关的3个服务之一,是有状态的服务,会修改集群的状态信息. 如果多个master节点上的相关服务同时生效,则会 ...
- 简述AQS原理
这是一道面试题:简述AQS原理 AQS核心思想是,如果被请求的共享资源空闲,则将当前请求资源的线程设置为有效的工作线程,并且将共享资源设置为锁定状态.如果被请求的共享资源被占用,那么就需要一套线程阻塞 ...