这是py2exe_python2.7下载,貌似官网速(sù)度比较慢 对python代码打包成win下(xià)的(de)可执行 如果代码(mǎ)中用(yòng)了图片(piàn)之类的外部资源(yuán) 打包后(hòu)要把文件拷贝到和执行文(wén)件相对的路(lù)径下 对应源代码。
py2exe_python2.7是对应xp,python2.7版本(běn)的py2exe软件,可(kě)以将python转(zhuǎn)化为(wéi)exe可执行文件。
py2exe是(shì)一个将python脚本转换成windows上的可独立执行(háng)的可执(zhí)行程序(*.exe)的(de)工具,这样,你就可以不用装python而在windows系统上运行(háng)这(zhè)个可执行程(chéng)序。
1、编译你的Py文件,确保无误(wù),保存到(dào)…(例(lì)如(rú):C:\old\test.py )
2、编辑一(yī)个内容如(rú)下(xià)的py文件,将其保存为(例如:C:\old\go.py )
from distutils.core import setup
import py2exe
setup(console=['test.py' ])
其中红色部分(fèn)为第一步保存(cún)的文(wén)件(jiàn)名
3.运行(háng)CMD, 进入文件目(mù)录(例如:cd c:\old ),执行以下命(mìng)令
运行:python go.py py2exe
红色部分(fèn)为第二步保存的(de)文件名
4.到相应文件夹(jiá)下找到 .exe 文件(jiàn)( 例如 C:\old\dist 下找 test.exe )
完(wán)毕!
如果你有一个名(míng)为(wéi)helloworld.py的python脚本,你想(xiǎng)把它转换为运行在windows上(shàng)的可(kě)执(zhí)行程序,并运行在没有安装python的windows系统上,那么首先(xiān)你(nǐ)应写(xiě)一个(gè)用于发布程(chéng)序的设置脚(jiǎo)本例(lì)如mysetup.py,在其(qí)中(zhōng)的setup函数(shù)前插入语(yǔ)句import py2exe 。
mysetup.py示例如下(xià):
# mysetup.py
from distutils.core import setup
import py2exe
setup(console=["helloworld.py"])
然后按下面的(de)方法(fǎ)运行mysetup.py:
python mysetup.py py2exe
上面的(de)命令(lìng)执行后(hòu)将产生一(yī)个名为dist的子目录,其中(zhōng)包含(hán)了(le)helloworld.exe,python24.dll,library.zip这些文件。
如果(guǒ)你的helloworld.py脚本(běn)中用了已编译的C扩展(zhǎn)模块,那么这些模块也会被拷贝在个子目录中,同样,所有的dll文件在(zài)运行时(shí)都是需要的,除了系统的dll文件(jiàn)。
dist子目录中(zhōng)的文件包(bāo)含了你(nǐ)的(de)程序(xù)所(suǒ)必须的东西,你应(yīng)将这个子目录中的所有内容一起发布。
默认情况(kuàng)下(xià),py2exe在目录dist下(xià)创建(jiàn)以(yǐ)下这些(xiē)必须的文件:
1、一个(gè)或多个exe文件。
2、python##.dll。
3、几个(gè).pyd文件,它们(men)是已(yǐ)编(biān)译的扩(kuò)展名,它们是exe文(wén)件所需要的;加上(shàng)其它(tā)的.dll文(wén)件,这些.dll是.pyd所需要(yào)的。
4、一个library.zip文件(jiàn),它包含(hán)了已(yǐ)编译的纯的(de)python模块如.pyc或.pyo
上面的mysetup.py创建了一个控制(zhì)台的(de)helloword.exe程序,如果你要创建一个图形用户界的程序,那么你只需要将mysetup.py中(zhōng)的(de)console=["helloworld.py"]替换为windows=["myscript.py"]既(jì)可。
py2exe一次能够创建多个(gè)exe文件,你需要(yào)将这些脚本文件(jiàn)的列表(biǎo)传递(dì)给(gěi)console或(huò)windows的关(guān)键字(zì)参数。如(rú)果你(nǐ)有几个相(xiàng)关联的脚(jiǎo)本,那(nà)么这是很(hěn)有用的(de)。
运(yùn)行下面(miàn)个(gè)命令,将显示(shì)py2exe命令的所有命(mìng)令行标记。
python mysetup.py py2exe --help
指定额外的文件
一些应用程序在运行时需要额外的文(wén)件,诸如配置文件、字体、位图(tú)。
如果(guǒ)在安装脚本中用data_files可选项指定(dìng)了那些额外(wài)的(de)文件,那么(me)py2exe能(néng)将这些文件拷贝到(dào)dist子(zǐ)目录中。data_files应包含(hán)一个元组(zǔ)(target-dir, files)列表(biǎo),其中的files是这些额外的文件的列(liè)表。
示例如下:
# 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"))],
)
说(shuō)明:data_files选项将(jiāng)创建(jiàn)一个子目录dist\bitmaps,其(qí)中包含两个.gif文件;一个子目录dist\fonts,其中(zhōng)包含了所(suǒ)有的.fnt文件。
五(wǔ)、Windows NT services
你可以通(tōng)过传递一个service关键字参数给setup函数来建造Windows NT services,这个service参数的值必须(xū)是一个Python模块(kuài)名(míng)(包含一service类)的列表。
示例如下:
# mysetup.py
from distutils.core import setup
import py2exe
setup(service=["MyService"])
所(suǒ)建造的可执(zhí)行的service是可以通过在其后跟一定(dìng)的命令行参数标记来自行安装和卸载的。你可以通过(guò)在(zài)这个可执(zhí)行的service(exe)后跟一-help参数来(lái)得到更多的(de)帮助。
六(liù)、COM servers
你可以通过传递一个com_server 关键字(zì)参数给setup函数来(lái)建造(zào)Windows NT services,这个service参数(shù)的值必(bì)须是一(yī)个Python模块名(包含一(yī)个或多个COM server 类)的列(liè)表。
示例如下:
# mysetup.py
from distutils.core import setup
import py2exe
setup(com_server=["win32com.server.interp"])
默(mò)认情况(kuàng)下,DLL和EXE servers被建造,你(nǐ)不(bú)需要它们的话你可以简单的删除它们。
