python打包工具 cx_Freeze介绍

原理

  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

posted @ 2019-04-11 15:13  上官夏洛特  阅读(4411)  评论(0编辑  收藏  举报