py2exe的用法小汇

作者在 2010-03-09 21:52:36 发布以下内容
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")] }]#源文件,程序图标
    )
 
默认分类 | 阅读 3122 次
文章评论,共1条
变幻小子
2011-03-18 15:33
1
看看
游客请输入验证码
浏览2894584次
文章归档
最新评论
  • 静夜思:-1是多核
  • 时光拾荒者:CtrlCV还是强的😝
  • 硬识岩丝:解决了,太感谢了~