py2exe的用法小汇

今天整理了一下py2exe的各种用法,此次仅仅整理出了一小部分,大部分的内容还是没有搜索到。郁闷中……网络上这方面的资料太少了,大部分都是重复的。。。。

 

console方式编译

setup(console=["consoles.py"])

windows方式编译

setup(windows=["windows.py"])

编译ico图标

setup(windows = [{"script":"ico.py", "icon_resources": [(1, "myico.ico")]} ])

一次编译多个文件

在编译的时候把多个文件以列表方式传递给setup即可:

setup(console=["my)one.py","my_two.py"])

setup(windows=["my)one.py","my_two.py"])

setup(console=["my_one.py", "my_two.py"], windows=["my_three.py"])

指定额外的文件

一些应用程序在运行时需要额外的文件,比如图片,或者其他文件。我们可以通过setup()函数的data_files参数来指定。格式大致如下:
[("目的目录1",["文件目录1","文件名1","文件目录2","文件名2",..."文件目录n","文件名n"]),("目的目录2",["文件目录1","文件名1","文件目录2","文件名2",..."文件目录n","文件名n"])]这种元组的形式包装成列表,传递给data_files就可以.这个列表里的元素都是成对出现的。

示范代码:
setup(windows=["test.py"],data_files=[("img",[r"d:/test/1.gif",r"d:/test/2.gif"]),("xml",[r"d:/test/1.xml",r"d:/test/2.xml"])])

这里将会在dist目录中创建两个目录img和xml,img目录里包含1.gif和2.gif这两个文件,xml目录中包含1.xml和2.xml这两个文件.如果不想创建新的目录img和xml那么只要讲这两个目录写成""空字符串就可以了,此时,py2exe会将指定文件复制到dist目录下。上面data_files是一个有两个元组作为元素的列表。第一个元组里面的img对应[r"d:/test/1.gif",r"d:/test/2.gif"] 这个有两个元素的列表,第二个元组里面的xml对应有两个元素的[r"d:/test/1.xml",r"d:/test/2.xml"]列表。

关于options和includes

includes = ["encodings", "encodings.*"]  
#要包含的其它库文件

options = {"py2exe":

    {"compressed": 1, #压缩
     "optimize": 2,
     "ascii": 1,
     "includes":includes,
     "bundle_files": 1 #所有文件打包成一个exe文件 }
    }

bundle_files项,值为1表示pyd和dll文件会被打包到exe文件中,且不能从文件系统中加载python模块;值为2表示pyd和dll文件会被打包到exe文件中,但是可以从文件系统中加载python模块

另外在setup中加入zipfile=None可以不生成library.zip。

一个标准的setup.py的代码如下:
#!/usr/bin/python
#filename:setup.py
#-*-coding:cp936-*-

from distutils.core import setup
import py2exe

 
includes = ["encodings", "encodings.*"]  
#要包含的其它库文件

options = {"py2exe":
    {"compressed": 1, #压缩
     "optimize": 2,
     "ascii": 1,
     "includes":includes,
     "bundle_files": 1 #所有文件打包成一个exe文件 }
    }
setup( 
    version = "XXX",
    description = "XXX",
    name = "XXX",  
    options = options,    
    zipfile=None,   #不生成library.zip文件
    console=[{"script": "hello.py", "icon_resources": [(1, "hello.ico")] }]#源文件,程序图标
    )

你可能感兴趣的:(py2exe的用法小汇)