原理

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

有相当数量的 Python 库可以实现此类转换,著名的有 py2exe、py2app、PyInstaller、cx_Freeze 等。因此,cx_Freeze 属于目前可用的最佳方案之一。

1、下载

下载链接:https://pypi.org/project/cx_Freeze/5.0.2/#files

(离线)官网https://pypi.python.org/pypi/cx_Freeze下载相应的whl

参考自己的python版本下载

2、安装


安装成功后还需要进一步配置

进入到python环境Scripts目录下:

cmd切换到当前目录,执行python  cxfreeze-postinstall 命令,成功后会出现cxfreeze.bat文件

运行 cxfreeze -h,出现如下截图安装成功

3、使用

3.1比较简单的小程序

新建一个python程序,例如:hello.py

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

cxfreeze D:/hello.py --target-dir E:/demo

成功执行后在E:/demo目录下可找到hello.exe文件

3.2 生成可安装包文件

新建setup.py文件,输入以下代码

import sys
import os
from cx_Freeze import setup, Executable os.environ['TCL_LIBRARY'] = r'D:\Python34\tcl\tcl8.6'
os.environ['TK_LIBRARY'] = r'D:\Python34\tcl\tk8.6' # base 实际上默认就是 None,即命令行程序,除非需要构建图形界面程序,否则配置了反而是画蛇添足,这里不配置
base = None
# 判断Windows系统
# if sys.platform == 'win32':
# base = 'Win32GUI' executables = [
Executable(
# 工程的 入口
'app_cpu_mem_test.py',
# 生成 的文件 名字
targetName='app_cpu_mem_test.exe',
# 生成的EXE的图标 #图标, 32*32px
icon='',
base=base)
] include_files = [
r'D:\Python34\DLLs\tcl86t.dll',
r'D:\Python34\DLLs\tk86t.dll'
] buildOptions = dict(
# 依赖的包
packages=[],
excludes=[],
# 额外添加的文件
include_files=include_files,
) setup(
# 产品名称
name='app_cpu_mem_test',
# 版本号
version='1.0',
# 产品说明
description='测试',
options=dict(build_exe=buildOptions),
executables=executables)

  cmd窗口执行

  python setup.py bdist_msi

执行成功之后,将在当前目录下生成build和dist两个文件。

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

build文件夹下包含main.py程序的可执行文件

参考文档:https://zhuanlan.zhihu.com/p/27229694

python打包工具 cx_Freeze介绍的更多相关文章

  1. Python 打包工具cx_freeze 问题记录及解决办法

    在节前的最后一天,解决了打包过程中遇到的所有问题,可以成功运行了!真是个好彩头,希望新的一年一切顺利! 以下是在使用cx_freeze过程中遇到的问题及解决办法(Win7) 问题描述:运行exe,启动 ...

  2. $python打包工具pyinstaller的用法

    pyinstaller是一个很好用的python打包工具,在Windows环境下可以将python脚本打包成一个exe可执行文件,并且脚本中所依赖的各种第三方库在打包时候都会被统一处理到一起,这样打包 ...

  3. Python打包工具setuptools的使用

    将我们写的Python程序发布成包后,可以使其能够安装使用. 在项目上测试的时候,某些情况下,可以将Python打包,然后上传到测试服务器,安装测试. setuptools是常用的打包工具. 一个简单 ...

  4. python程序打包工具 ── cx_Freeze

    cx_Freeze是一个类似py2exe的工具,它们区别是py2exe是将python程序打包成windows下可以执行的exe文件的,而cx_Freeze则是将python程序打包为linux下可以 ...

  5. python打包工具distutils、setuptools分析

    在上一篇博文中总结了python中导入包,安装包一条完整的线路.其中有一个有意思的知识点,安装包的方式有很多种,模块和包管理中打包,发布,安装也是值得研究的内容. python中安装包的方式有很多种: ...

  6. python 网络工具 scapy 介绍

    作者介绍,这是个万能的网络工具,除了可以查看 TCP/IP 各层的报文,还可以发送报文.可以说是一个万能工具,作者嚣张的说, “it can replace hping, 85% of nmap, a ...

  7. Python虚拟环境工具-Virtualenv 介绍及部署记录

    在开发Python应用程序时,系统默认的Python版本可能会不兼容这个应用程序, 如果同时开发多个应用程序, 可能会用到好几个版本的python环境, 这种情况下,每个应用可能需要各自拥有一套&qu ...

  8. python打包工具pyinstaller的使用

    安装PyInstaller pip install pyinstaller 安装完后,检查安装成功与否: pyinstaller --version 安装成功后,就可以使用下面的命令了: pyinst ...

  9. Python打包工具

    打包Python应用,使用工具: 1.Linux和Windows下,使用pyinstaller pyinstaller -F -w XXX.py 在当前文件夹下生成两个文件夹:build .dist ...

随机推荐

  1. Django web编程1 -- 创建项目和应用

    python:3.7.2 Django:2.1.7 1.创建虚拟环境 虚拟环境是系统的一个位置,可以在其中安装包,并将其与其他python包隔离. 创建目录,命名为learning_log,并切换到这 ...

  2. Linux下nc命令的使用

    nc命令的作用 实现任意TCP/UDP端口的侦听,nc可以作为server以TCP或UDP方式侦听指定端口 端口的扫描,nc可以作为client发起TCP或UDP连接 机器之间传输文件 机器之间网络测 ...

  3. MyISAM与InnoDB的区别是什么?

    1. 存储结构 MyISAM:每个MyISAM在磁盘上存储成三个文件.第一个文件的名字以表的名字开始,扩展名指出文件类型..frm文件存储表定义.数据文件的扩展名为.MYD (MYData).索引文件 ...

  4. 扩展欧几里得(exgcd)与同余详解

    exgcd入门以及同余基础 gcd,欧几里得的智慧结晶,信息竞赛的重要算法,数论的...(编不下去了 讲exgcd之前,我们先普及一下同余的性质: 若,那么 若,,且p1,p2互质, 有了这三个式子, ...

  5. Activiti工作流学习笔记

    先从工作流的启动开始讲,Activiti提供了四种工作流的启动方式 1.空启动事件 2.定时启动事件 3.异常启动事件 4.消息启动事件 空启动事件中标签内没有任何其他元素的定义 <startE ...

  6. swift 4 生成随机数的内置方法汇总

    第一种是drand48(),不接收参数, 返回的类型是Double. 就返回 0到1之间的Double类型的随机数.举个例子: //每次点击button,button 的颜色会随机变换. class ...

  7. mysql—增删改查语句总结

    关于MySQL数据库——增删改查语句集锦 一.基本的sql语句 CRUD操作: create 创建(添加) read 读取 update 修改 delete 删除 .添加数据 ,'n001','201 ...

  8. P3396 哈希冲突

    很好的根号算法(这种思想好像叫根号分治?) 首先,暴力是Ο(n2)的 考虑预处理: for(p=1;p<=n;p++) //枚举模数 ans[p][i%p]+=value[i]; 看似很好但还是 ...

  9. Luogu P4204 神奇口袋 题解报告

    题目传送门 [题目大意] 一个口袋里装了t种颜色的球,第i种颜色的球的数目为a[i],每次随机抽一个小球,然后再放d个这种颜色的小球进口袋. 给出n个要求,第x个抽出的球颜色为y,求满足条件的概率. ...

  10. linux服务器磁盘挂载操作

    具体操作是:先对磁盘进行格式化,格式化后挂载到需要的挂载点,最后添加分区启动表,以便下次系统启动随机自动挂载.1.首先查看系统中磁盘信息,命令为:fdisk -l; 2.找到未使用的磁盘,对其进行格式 ...