py2exe使用总结

摘要:
如果你用python编写一个小程序,并想使用它或向其他人展示它,但他的计算机没有python、wxpython等,那么你可以尝试py2exe,这是一个在Windows上将python脚本转换为可执行程序的工具。关于安装我们就不多说了。让我们简单介绍一下如何使用py2exe。一般来说,使用py2exe的步骤如下:1。编写用于发布程序的安装脚本。如果您有一个名为helloworld的python脚本。py,现在要将其转换为exe可执行程序,可以在helloworld所在的目录中创建一个新的setup.py文件,内容如下:#!

假如你用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使用总结》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇python文件路径分隔符的详细分析pytorch的Embedding使用下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

使用rsync 的 --delete参数删除目标目录比源目录多余的文件

最近在处理策划资源文件的时候需要将目录A的文件全部同步到目录B的文件,并且把目录B内多余的文件全部删除掉。所以,就想到了使用rsync的--delete参数来实现功能。创建示例如下://创建两个测试目录$ mkdir {dirA,dirB} //分别在两个目录创建相应的文件$ touch dirA/{fileA1.txt,fileA2.txt,fileA3...

linux --> Linux 的启动流程

Linux 的启动流程  操作系统接管硬件以后发生的事情,也就是操作系统的启动流程。   因为在BIOS阶段,计算机的行为基本上被写死了,程序员可以做的事情并不多;但一旦进入操作系统,程序员几乎可以定制所有方面。所以,这个部分与程序员的关系更密切,下面的内容针对的是Debian发行版。 第一步、加载内核   操作系统接管硬件以后,首先读入 /boot 目...

《python解释器源码剖析》第0章--python的架构与编译python

本系列是以陈儒先生的《python源码剖析》为学习素材,所记录的学习内容。不同的是陈儒先生的《python源码剖析》所剖析的是python2.5,本系列对应的是python3.7,所以某些地方会和原著有出入,另外我在介绍的过程中会穿插大量的python代码,不仅仅是介绍如何实现的,还会使用python实际地对我们的结论进行演示。下面就开始吧。不过在开始分析...

linux boost 安装

sudo apt-get install libboost-dev  但是,我这样安装以后,编译程序时出现了很多错误,而且都是系统文件的错误。我开始以为是我的boost库版本不对,后来换了好几个版本,都出现了同样的问题。后来,自己编译了一个boost.1.42。然后程序就顺利通过了。后来想了一下原因,可能是因为从上面的命令默认安装的boost在编译打包时没...

Windows IIS Web services性能计数器说明

IIS Global Active Flushed Entries Active Flushed Entries 是缓存文件句柄,当前传输全部完成后将关闭此句柄。IIS Global 对象。 Web Anonymous Users/Sec 用户通过 Web 服务进行的匿名连接数。 IIS Global BLOB Cache Flushes 自服务器启动后的...

软件的增量更新

软件的增量更新 因为转战C#了,之前很多东西都丢了。现在从头开始弄基础服务,首先第一个就是客户端的自动更新。之前简单搜了一下相关功能的实现。有一个文章我没有看懂,另一片文章里边说的应该是提交本地数据,然后计算差异化包,让服务器返回差异化数据包。当然这样不是不行。肯定是可行的,但是对于服务器来说这部分工作可能就有点麻烦了。因为你得让服务器有这个计算能力。参考...