Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1525011
  • 博文数量: 164
  • 博客积分: 2993
  • 博客等级: 少校
  • 技术积分: 1718
  • 用 户 组: 普通用户
  • 注册时间: 2011-06-24 11:42
文章分类

全部博文(164)

文章存档

2014年(1)

2013年(36)

2012年(90)

2011年(37)

分类: Python/Ruby

2011-10-09 11:00:50


一、简介

Py2exe是一个将python脚本转换成可以独立运行的可执行程序.可以不用安装python而运行python程序。

二.安装py2exe

使用py2exe需要下载python版本对应的安装包.

py2exe可以从地址下载.

三.Py2exe使用

假设有一个名为hello.py的脚本,想把它打包成可执行程序。

首先应写一个setup.py发部脚本.

  1. #setup.py
  2. from distutils.core import setup
  3. import py2exe
  4. setup(console = [“hello.py”])

然后运行setup.py脚本

python setup.py py2exe

屏幕跳出一大堆提示信息后,产生了build和dist两个文件夹。进入dist后就可以看到打包后的可执行程序。

Setup.py还可以这样写,简化操作方法。

  1. #setup.py
  2. from distuils.core import setup
  3. import py2exe
  4. import sys
  5. sys.argv.append(“py2exe”)
  6. setup(console = [{“script”:’hello.py’}])

这样只需python setup.py就可以生成可执行程序了。

以上生成的是控制台应用程序,如果想要创建图形用户的程序,只需将console=[“hello.py”]替换为windows=[“hello.py”]即可.


四.扩展
一些应用程序中还需要配置文件,字体,位图等额外的文件。
在安装脚本中使用data_files选项,打包时可以将这些文件拷贝到dist目录中。Data_files是一个元组(target-dir, files)列表.

  1. #setup.py
  2. from distutils.core import setup
  3.  import glob
  4.  import py2exe

  5.  setup(console=["hello.py"],
  6.       data_files=[("bitmaps", ["bm/large.gif", "bm/small.gif"]),
  7.                     ("fonts", glob.glob("fonts\\*.fnt"))],
  8.  )

说明:data_files选项将创建一个子目录dist\bitmaps,其中包含两个.gif文件;一个子目录dist\fonts,其中包含了所有的.fnt文件。

五.遇到的一些问题
1.如果显示错误提示的话 ”msvcp90.dll: no such file or directory”,请尝试下面的方法:

  1. fromdistutils.coreimportsetup
  2. importpy2exe
  3. setup(console = ["hello.py"],
  4.     options={"py2exe":\
  5.              {"dll_excludes":["MSVCP90.dll"]}}
  6. )

2.如果遇到 ImportError: No module named sip 的错误,建议使用如下方法解决:

  1. from distutils.core import setup
  2. import py2exe
  3. setup(windows=[{"script":"main.py"}],
  4.     options={"py2exe":{"includes":["sip"]}})
阅读(1570) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~