现在时间是:
当前位置:首 页 >> 数据可视>> 文章列表

CxFreeze 使用教程

作者:   发布时间:2016-01-13 17:07:30   浏览次数:2451

今天生成一个工具的时候py2exe死活差一步,于是就换成cx_Freeze。

一、利用cx_Freeze直接生成exe:

在python中比较常用的python转exe方法有三种,分别是cx_freeze,py2exe,PyInstaller。

py2exe是这三者里面知名度最高的,但稍微复杂一点的结构就无法完美的解决更不用提py3了

cx_freeze,本次所用的是4.3.2 64bit。

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

第一步:检查cx_freeze是否安装正确(运行cmd,切换到cxfreeze.bat所在目录,然后执行 "cxfreeze -h" 看看能否出来cx_freeze的帮助信息,如图一)

图一

如果提示系统找不到指定路径(如图二)

将cxfreeze.bat文件进行编辑

打开你的python安装文件夹,例如C:Python33Scripts

点击cxfreeze.bat文件右键点编辑,将里面的路径修改为自己的安装路径

如:C:Python33python.exe C:Python33Scriptscxfreeze %*

然后保存,关闭记事本,重新执行第一步,看看是否正确。

二、如果安装正确,就可以使用啦

 

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

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

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

 

注意:只能指定一个要打包的模块,也就是启动模块。所有py文件名都不能有中文字符,否则会出现编码异常。发布后,可执行文件执行路径不能有中文(最好也不要有空格)。

 

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

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

hello.py 以及dist,可以是绝对路径,如D:hello.py及D:dist

注意:

1、将exe放到其他机子上运行,弹出“找不到msvcr100.dll“。手动将”msvcr100.dll“拷贝到dist目录下即可。可以写个脚本把这些都包含进去

2、要去掉exe里的后面黑色控制台窗口就在前面的命令改成

cxfreeze D:sourcegame1.0.py(需打包文件路径) --target-dir D:a(存放exe的目标文件夹路径)--base-name=win32gui

 

优点:可以快速简单成成,但是不能设定图标。

 

三、生成msi安装文件

1、新建一个python程序,例如:hello.py[续上]

在“C:Python33Scripts”目录(也就是cxfreeze命令所在的文件目录)下运行:

  1. cxfreeze D:/hello.py --target-dir D:/123  
就可以将D:/hello.py文件打包到D:/123目录下,生成hello.exe程序和相关依赖文件。

当然,这是比较简单的程序,所以相关的依赖文件比较少,当引入外部包比较多的时候,并且希望只生成一个.exe文件的时候,可以使用如下的命令:

  1. cxfreeze D:/hello.py --target-dir D:/123 --no-copy-deps  
此时,发现只生成一个.exe文件。

        2、如果要生成可安装包文件,则需要使用”distutils setup script“方式,也就是需要建立一个setupy.py文件的方式。

        这里,简单的建立一个setup.py文件,用于生成上述hello.py文件的可安装文件包“。

        
运行:

  1. python setup.py bdist_msi  

执行成功之后,将在”C:Python33Scripts“目录下生成build和dist两个文件。

其中,dist文件夹中包含hello.py程序的安装包文件

完整设置图标代码:

import sys

from cx_Freeze import setup, Executable
base = None
if sys.platform == "win32":
base = "Win32GUI"

setup(
name = "simple_PyQt4",
version = "0.1",
description = "Sample cx_Freeze PyQt4 script",
executables = [Executable("MainWindow.py", base = base,icon="mainWindow.ico")])


build文件夹下包含hello.py程序的可执行文件,也就是hello.exe








上一篇:没有了    下一篇:没有了

Copyright ©2019    易一网络科技|www.yeayee.com All Right Reserved.

技术支持:自助建站 | 领地网站建设 |短信接口 版权所有 © 2005-2019 lingw.net.粤ICP备16125321号 -5