用cxfreeze打包Python3.3成exe文件

jopen 11年前

python 是一个非常非常优秀的编程语言,它最大的特性就是跨平台。python程序几乎可以在所有常见的平台中进行使用,而且大部分无需修改任何代码!不 过,python也有一点点小缺憾(这个是由于自身本质决定,不能叫缺憾,不过在这就这么称呼吧),那就是python程序的执行必须要有解释器的参与。 那么python的程序如何在没有解释器的平台上使用呢?很简单,将python程序打包成exe可执行文件即可!

     在python中比较常用的python转exe方法有三种,分别是cx_freeze,py2exe,PyInstaller。py2exe恐怕是三者里面知名度最高的一个,但是同时相对来说它的打包质量恐怕也是最差的一个。pyinstaller打包很好,但是操作工序较为复杂。so个人还是推荐cx_freeze,本次所用的是4.3 32bit。

首先:cx_freeze下载地址:http://sourceforge.net/projects/cx-freeze/files/ 

接着,介绍一下cx_freeze的使用方法。

第一步:检查cx_freeze是否安装正确。

运行cmd,切换到cxfreeze.bat,然后执行 "cxfreeze -h" 看看能否出效果

如果安装正确,如图显示

用cxfreeze打包Python3.3成exe文件

如果显示的如下图片,请查看一下你的python安装路径

用cxfreeze打包Python3.3成exe文件

修改路径的办法

打开你的python安装文件夹,例如我的python安装文件夹在G盘,

那么用记事本打开G:\python\Scripts\cxfreeze.bat

如图

用cxfreeze打包Python3.3成exe文件

修改路径到自己的安装路径

用cxfreeze打包Python3.3成exe文件

然后保存,关闭记事本,重新检验,看看是否正确。

 

第二步:如果安装正确,那么接下来的事情就非常简单了

正式开始打包,命令为:cxfreeze hello.py --target-dir dist

命令解释:hello.py 是你要打包的主文件、启动文件

Dist为要目标文件夹,打包后会生成dist目录,里面就有打包后的可执行文件。

注意:

  1. 只能指定一个要打包的模块,也就是启动模块
  2. 所有.py文件都不能有中文字符,否则会出现编码异常。
  3. 发布后,可执行文件执行路径不能有中文(最好也不要有空格)。
  4. 启动执行的文件中不要有下面这种判断,否则可执行文件执行会没有任何效果。 
    if __name__ == "__main__": 
    main()

  5. 打包成功的图片: 

  6. 用cxfreeze打包Python3.3成exe文件

用cxfreeze打包Python3.3成exe文件

  1. 双击生成的exe文件可以使用了是不是很高兴呢?怎么觉得启动的时候后面有个黑糊糊的窗口不舒服?那你在生成命令里面加个参数吧!例子:

    cxfreeze hello.py --target-dir dist --base-name=123


    注意:

    1、将exe放到其他机子上运行,弹出“找不到msvcr100.dll“。手动将”msvcr100.dll“拷贝到dist目录下即可。也许是cxfreeze的bug

2、 要去掉exe里的后面黑色控制台窗口就在前面的命令改成
cxfreeze D:\source\game1.0.py(需打包文件路径) --target-dir D:\a(存放exe的目标文件夹路径)--base-name=win32gui

来自:http://huangda-hd.blog.163.com/blog/static/81808426201361741158158/