py2exe是一个将python剧本转换成windows上的可自力实施的可实施挨次(*.exe)的工具,这样,你就能不用装python而在windows零星上运行这个可实施挨次。
py2exe已经被用于建树wxPython,Tkinter,Pmw,PyGTK,pygame,win32com client以及server,以及此外的自力挨次。py2exe是宣告在开源允许证下的。
步骤如下:
一、编译你的Py文件,确保无误,保存到…(好比:C:oldtest.py )
二、编纂一个内容如下的py文件,将其保存为(好比:C:oldgo.py )
from distutils.core import setup
import py2exe
setup(console=['test.py' ])
其中红色部份为第一步保存的文件名
3.运行CMD, 进入文件目录(好比:cd c:old ),实施如下命令
运行:python go.py py2exe
红色部份为第二步保存的文件名
4.到响应文件夹下找到 .exe 文件( 好比 C:olddist 下找 test.exe )
竣事!
py2exe的用法
假如你有一个名为helloworld.py的python剧本,你想把它转换为运行在windows上的可实施挨次,并运行在不装置python的windows零星上,那末首先你应写一个用于宣告挨次的配置剧本好比mysetup.py,在其中的setup函数前插入语句import py2exe 。
mysetup.py示好比下:
# mysetup.py
from distutils.core import setup
import py2exe
setup(console=["helloworld.py"])
而后按下面的措施运行mysetup.py:
python mysetup.py py2exe
下面的命令实施后将发生一个名为dist的子目录,其中搜罗了helloworld.exe,python24.dll,library.zip这些文件。
假如你的helloworld.py剧本中用了已经编译的C扩展模块,那末这些模块也会被拷贝在个子目录中,同样,所有的dll文件在运行时都是需要的,除了零星的dll文件。
dist子目录中的文件搜罗了你的挨次所必需的工具,你应将这个子目录中的所有内容一起宣告。
默认情景下,py2exe在目录dist下建树如下这些必需的文件:
一、一个或者多个exe文件。
二、python##.dll。
三、多少个.pyd文件,它们是已经编译的扩展名,它们是exe文件所需要的;加之此外的.dll文件,这些.dll是.pyd所需要的。
四、一个library.zip文件,它搜罗了已经编译的纯的python模块如.pyc或者.pyo
下面的mysetup.py建树了一个操作台的helloword.exe挨次,假如你要建树一个图形用户界的挨次,那末你惟独要将mysetup.py中的console=["helloworld.py"]交流为windows=["myscript.py"]既可。
py2exe一次可能建树多个exe文件,你需要将这些剧本文件的列表传递给console或者windows的关键字参数。假如你有多少个相分割关连的剧本,那末这是颇实用的。
运行下面个命令,将展现py2exe命令的所有命令行标志。
python mysetup.py py2exe --help
指定格外的文件
一些运用挨次在运行时需要格外的文件,诸如配置装备部署文件、字体、位图。
假如在装置剧本中用data_files可选项指定了那些格外的文件,那末py2exe能将这些文件拷贝到dist子目录中。data_files应搜罗一个元组(target-dir, files)列表,其中的files是这些格外的文件的列表。
示好比下:
# mysetup.py
from distutils.core import setup
import glob
import py2exe
setup(console=["helloworld.py"],
data_files=[("bitmaps",
["bm/large.gif", "bm/small.gif"]),
("fonts",
glob.glob("fonts*.fnt"))],
)
剖析:data_files选项将建树一个子目录distbitmaps,其中搜罗两个.gif文件;一个子目录distfonts,其中搜罗了所有的.fnt文件。
五、Windows NT services
你可能经由传递一个service关键字参数给setup函数来修筑Windows NT services,这个service参数的值必需是一个Python模块名(搜罗一service类)的列表。
示好比下:
# mysetup.py
from distutils.core import setup
import py2exe
setup(service=["MyService"])
所修筑的可实施的service是可能经由在其后跟确定的命令行参数标志来自行装置以及卸载的。你可能经由在这个可实施的service(exe)后跟一-help参数来患上到更多的辅助。
六、COM servers
你可能经由传递一个com_server 关键字参数给setup函数来修筑Windows NT services,这个service参数的值必需是一个Python模块名(搜罗一个或者多个COM server 类)的列表。
示好比下:
# mysetup.py
from distutils.core import setup
import py2exe
setup(com_server=["win32com.server.interp"])
默认情景下,DLL以及EXE servers被修筑,你不需要它们的话你可能重大的删除了它们。