Chinaunix首页 | 论坛 | 博客
  • 博客访问: 30102
  • 博文数量: 9
  • 博客积分: 1400
  • 博客等级: 上尉
  • 技术积分: 110
  • 用 户 组: 普通用户
  • 注册时间: 2009-02-25 17:18
文章分类

全部博文(9)

文章存档

2011年(1)

2009年(8)

我的朋友
最近访客

分类: Python/Ruby

2009-03-16 10:20:49

写一个mysetup.py的脚本直接运行:

# mysetup.py
from distutils.core import setup
import py2exe

setup(console=["myscript.py","myscript2.py"],
      data_files=[("data","data/*"),

                  ("resource", "resource/small.ico"])]
)

 

if __name__=='__main__':
    argv=sys.argv
    argv.append('py2exe')
    argv.append('-d')
    argv.append('bin')
    mysetup(argv)

1.setup第一个参数:console= 表示生成的是控制台程序,相应的参数还有"windows","service"服务进程,"com_server"COM组件。多个脚本编译的,要把所有用到的模块写入value中。

2.data_files参数告诉setup哪些额外的文件要被打包。参数值是(dist, src)的列表。本例中,"data","resource"是在发布程序目录中生成的两个目录,"data/*","resource/small.ico"是指明要发布的额外文件

3.当发布的文件有多个时,py2exe会把每个模块都编译成exe文件,然而执行时会提示类似找不到...模块。以此例来说,进入发布生成的目录,将"library.zip"解压出来,并将解压内容放进当前的"library.zip"目录,也就是说将zip包换成目录,然后将myscript2.pyc拷贝到"library.zip"后,再运行myscripy.exe就可以了。

另外,发布exe程序最好不要用python 2.6以上的版本,因为Python 2.6 是使用 Microsoft Visual C++ 2008 编译的,所以要想 py2exe for 2.6 打包的程序运行,目标机器上必须装有 Python 2.6 或者 Microsoft Visual C++ 2008 Redistributable Package。否则系统就无法识别 exe 程序的 CRT, 因而它就成为无法运行的程序。

阅读(1058) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~