I am LAZY bones? AN ancient AND boring SITE

python程序打包工具 ── cx_Freeze

cx_Freeze是一个类似py2exe的工具,它们区别是py2exe是将python程序打包成windows下可以执行的exe文件的,而cx_Freeze则是将python程序打包为linux下可以直接执行的ELF格式的二进制可执行文件(看说明好像也能生成windows的可执行文件,号称跨平台)。
cx_Freeze的作用就是让你的python程序可以脱离python运行环境,在没有安装python的微型linux系统(例如cdlinux、tinycore等)里,方便地运行你的python程序。从功能上来说,也可以将其理解为一个python程序的编译器,将你的源码隐藏起来。
使用方法也很简单,下载以后,解压,如一般的python模块一样,cd到目录以后,

python setup.py install

就可以完成安装,这样你的系统里就会有cxfreeze命令了。
然后,cd到你的python程序的目录执行

cxfreeze 你的程序文件.py --target-dir dist

就会在当然目录生成一个dist的目录,里面就会有一堆so文件和可执行目标文件了,当然如果你还有图片或者其他数据文件的话,手工复制到相应目录,这时候运行那个可执行文件,就应该能看到效果了。
现在只需将dist目录打包,传到没有python的目标系统里,你程序也就能运行了。

PS: cx_Freeze还有另外两种使用方法,需要了解的话,可以自行查看随代码打包的html文档。

最后修改时间: 2009年12月04日 22:50

本文章发表于: 2009年12月04日 21:58 | 所属分类:编程相关. | 您可以在此订阅本文章的所有评论. | 您也可以发表评论, 或从您的网站trackback.

11 个评论 关于: “python程序打包工具 ── cx_Freeze”

  1. shellexy 在 2009年12月04日 22:26 说:回复

    喂~

    骨头妳到底试过了干 PyGtk 没有,

    • bones7456 在 2009年12月04日 22:49 说:回复

      有啊,PyGtk的可以的,可能这个更适合linux吧。

  2. shellexy 在 2009年12月04日 22:28 说:回复

    先前在 Win 下试用时就是比 py2exe 不靠谱得多

  3. 无限 在 2009年12月05日 11:01 说:回复

    你那天发给我的莫非就是这东西打包的?

    • bones7456 在 2009年12月05日 22:02 说:回复

      对的,呵呵~

  4. Tweets that mention I am LAZY bones ? : python程序打包工具 ── cx_Freeze -- Topsy.com 在 2009年12月05日 12:17 说:回复

    […] This post was mentioned on Twitter by exherb and 骨头, York Wong. York Wong said: [GReader] python程序打包工具 ── cx_Freeze http://bit.ly/6tk2e9 […]

  5. xiooli 在 2009年12月05日 21:38 说:回复

    打出来的包大不?执行效率会不会提高?

    • bones7456 在 2009年12月05日 22:04 说:回复

      有GTK的环境下,gmbox打包以后未压缩是8M。效率就不知道了。。

  6. Solrex 在 2009年12月06日 22:29 说:回复

    其实没有python环境的Linux太少了,这个东西的用处不怎么大

    • observer 在 2009年12月07日 04:11 说:回复

      同意没有python的环境太少了
      不过,也许python版本不够高,而你1.没有权限不能升级之,2.有升级权限但是出于兼容性考虑不能升级,那么这个也能派上用处,我觉得还是不错的。

    • bones7456 在 2009年12月07日 08:33 说:回复

      你说的是PC用的linux,这样的linux确实大多都有python,但是一些适用于小设备的微linux,一共就十几M最多几十M的,没有python的就多了去了。。。

Tweets that mention I am LAZY bones ? : python程序打包工具 ── cx_Freeze -- Topsy.com 发表评论




取消