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

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

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

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

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

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

如果安装正确,如图显示

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

修改路径的办法

打开你的python安装文件夹,例如我的python安装文件夹在G盘,那么用记事本打开G:\python\Scripts\cxfreeze.bat

如图

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

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

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

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

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

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

注意:

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

    if __name__ == "__main__": 

    main()
  5. 打包成功的图片:

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

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

总结:对于cx_freeze,已经很久没有更新,用的比较多的还是后面两种,后面文章都有讲述:对于pyinstaller和py2exe两种把Python文件打包成exe的可执行文件的方法,都有各自的优缺点。但是最终目的都是为了在没有Python环境下的普通 Windows系统的电脑中可直接运行,这点还是很不错的。我本人比较偏向于pyinstaller,它(-F指令下)生成的exe文件,集成了所需要的所有资源(所以exe文件 相对较大),可直接拷贝到其他电脑中使用。对于py2exe来说,限制就比较多了,它所需要用到的外部资源都在dist目录下,想要在其他电脑中使用就必须把整个dist文件夹都拷贝过去。而且经测试在64位机器生成的exe无法再32位机器上打开使用。

大家根据自己的需要,择优选择就行了

cx_freeze的安装使用的更多相关文章

  1. python3.8.1安装cx_Freeze

    按照官网的提示命令python -m pip install cx_Freeze --upgrade安装,不成功,报了一个错误,说cx_Freeze找不到需要的版本,还有一些警告说PIP需要升级,没理 ...

  2. PyQt5环境搭建及cx_freeze打包exe

    Python的图形库也有好几个,Qt文档和使用面还是要广一些. 打包成可执行文件的也有好几个,PyInstaller用的比较多,但是PyInstaller目前还不支持Python3.6(开发版支持3. ...

  3. Python 使用cx_freeze 生成exe文件【转】

    Python 使用cx_freeze 生成exe文件   在python中比较常用的python转exe方法有三种,分别是cx_freeze,py2exe,PyInstaller.py2exe恐怕是三 ...

  4. Python 使用cx_freeze 生成exe文件

    在python中比较常用的python转exe方法有三种,分别是cx_freeze,py2exe,PyInstaller.py2exe恐怕是三者里面知名度最高的一个,但是同时相对来说它的打包质量恐怕也 ...

  5. python3之cx_Freeze使用(PyQt5)

    1.   cx_Freeze简介 Python脚本在装有Python的系统中可以直接双击运行,但绝大多数普通用户并没有配置此类环境,而编译为可执行二进制文件后,用户无需预先安装Python及依赖库即可 ...

  6. 使用cxfreeze打包成exe文件

    旧版本下载链接地址python3.4以下的:https://www.lfd.uci.edu/~gohlke/pythonlibs/#cx_freeze 最新版本python3.5以上直接使用  pip ...

  7. cx_freeze安装使用

    在windows下 安装比较方便又专门的安装包 然后cmd 进入 c:\python33\Scripts >cxfreeze E:\main.py --target-dir E:\ 前面是源文件 ...

  8. python4delphi 安装

    环境搭建: 目前p4d已经可以支持到XE7,可惜googlecode即将关闭,不知道作者是否会在github上继续更新. 因为此开源项目历史较久远,拿到源代码后可能还需要手动修改相关的文件引用,毕竟需 ...

  9. 打包python脚本为exe可执行文件-pyinstaller和cx_freeze示例

    本文介绍使用cx_freeze和pyinstaller打包python脚本为exe文件 cx_freeze的使用实例 需要使用到的文件wxapp.py, read_file.py, setup.py ...

随机推荐

  1. 将webservice嵌套到以完成的web项目中

    一.先把webservice服务端写入项目(基于spring) 1.在pom.xml中引入WebService相关的jar依赖 <!--webservice开始 --> <!--ht ...

  2. 数据库navicat中limit函数的用法

    从t_product表中获取pic_small字段的前十条记录 示例:select pic_small from t_product limit 0,10;

  3. git合并分支上的commit为一条commit到master

    标签: git 缘由? 有一次被人问到怎么把一个分支的所有commit按一个commit合并到主分支上,当时一脸蒙B,平时开发都是直接merge,很少考虑到这种问题,于是特意搜索了相关资料. 场景 其 ...

  4. Android Studio修改默认Activity继承AppCompatActivity(转)

    在Android Studio中新建Activity默认继承AppCompatActivity,感觉这点十分不爽,找了很久,终于发现在Android Studio安装目录下有个模板文件,修改其中的参数 ...

  5. jquery-ui sortable 排序

      https://blog.csdn.net/u013066244/article/details/51954198 <link ref="stylesheet" href ...

  6. DVB数字电视常见信号指标解释

    1. 平均功率与峰值电平       峰值电平在模拟电视广播时用于表征频道信号电平强弱. 模拟电视信号是单极性.不对称的,即电视信号有一个固定黑色参考电平,比黑色亮的信号处在黑色电平线一边,同步脉冲处 ...

  7. 第四章 T-SQL编程

    1.前言->此T-SQL编程是基于sql server开发环境->关键字:T-SQL编程:游标:视图和索引 2.T-SQL编程基础->标识符:常规标识符必须以汉字.字母.下划线_.@ ...

  8. To my dear friends in SFAE

    To my dear friends in SFAE, 这不是farewell,我还在西门子大家庭.2018年1月份我会转到SLC MCBU.在SFAE十年,一些敢想,唠叨唠叨~ 十年弹指一挥间.记得 ...

  9. BZOJ 3090: Coci2009 [podjela]

    3090: Coci2009 [podjela] Time Limit: 3 Sec  Memory Limit: 128 MBSubmit: 23  Solved: 17[Submit][Statu ...

  10. vue中列表的过渡

    <style> .v-enter,.v-leave-to{ opacity: 0; } .v-enter-active,.v-leave-active{ transition: opaci ...