Python程序打包成可执行文件的方法与步骤

文章目录

  • 一、概述
  • 二、pyinstaller
  • 2.1 概述
  • 2.2 安装
  • 2.3 生成可执行文件
  • 三、cx_Freeze
  • 3.1 概述
  • 3.2 安装
  • 3.3 生成可执行文件
  • 四、PyOxidizer
  • 4.1 概述
  • 4.2 安装
  • 4.3 生成可执行文件
  • 一、概述

    随着Python语言的普及,将其开发的应用程序转化为跨平台、独立部署的可执行文件的需求日益增长。Python打包工具正是为解决这一需求而生,它们通过编译、静态链接等方式,将Python脚本及其依赖库整合为单一可执行文件或安装包,从而简化部署流程,提高应用的便携性和安全性。

    以下是几种常用的打包方法。

    二、pyinstaller

    2.1 概述

    PyInstaller是一个流行的打包工具,能够将Python脚本及所有依赖转换为一个独立的可执行文件,支持Windows、macOS和Linux操作系统。具体的使用可查阅PyInstaller官方文档

    2.2 安装

    在使用pyinstaller工具时需要先安装才能使用,可以打开powershell或者在VScode的终端界面中输入命令。

    如果不确定是否安装了pyinstaller时,可以使用下面的命令:

    pip show pyinstaller
    

    如果已经安装,会如下图所显示,显示pyinstaller的安装信息,包括版本号、安装路径等。如果未安装,则会收到类似于Could not find installation information for package 'pyinstaller'的提示信息。

    接下来就是开始安装pyinstaller

    pip install pyinstaller
    

    2.3 生成可执行文件

    使用pyInstaller生成可执行文件。如果你的应用名为main.py,可执行下列命令:

    pyinstaller --onefile main.py
    #--onefile选项表示将所有依赖打包进一个单独的可执行文件中。
    

    三、cx_Freeze

    3.1 概述

    cx_Freeze是另一个打包工具,与PyInstaller类似,但某些情况下可能更适合特定项目或平台。具体的使用可查阅cx_Freeze官方文档

    3.2 安装

    在安装之前,可以用pip show cx_Freeze 先查看是否安装了cx_Freeze工具,下图是没有安装的情况,如果安装了,会给出cx_Freeze工具相关的信息。

    开始安装cx_Freeze:

    pip install cx_Freeze
    

    3.3 生成可执行文件

    创建一个setup脚本,例如setup.py,并配置应用信息,相关的信息需要自行修改

    import cx_Freeze
    
    # 应用的基本信息配置
    executables = [cx_Freeze.Executable("your_main_script.py", base=None)]  # your_main_script.py 是你的主程序入口
    
    # 设置构建选项
    build_exe_options = {
        "packages": ["os", "sys", "requests"],  # 需要包含的额外Python包
        "include_files": ["config.ini", "data/"],  # 需要复制到构建目录的额外文件或目录
        "excludes": ["tkinter"],  # 需要排除的模块,以防打包不必要的库
        "include_msvcr": True,  # Windows下,包含MSVC运行时库
    }
    
    # 创建设置
    setup(
        name="YourAppName",  # 应用名称
        version="0.1",  # 版本号
        description="A brief description of your application",  # 应用简述
        options={"build_exe": build_exe_options},  # 构建选项
        executables=executables,  # 可执行文件配置
    )
    

    然后运行setup脚本来生成可执行文件:

    python setup.py build
    

    四、PyOxidizer

    4.1 概述

    PyOxidizer是一个较新的工具,旨在通过直接编译Python应用程序到单个二进制文件来简化部署过程。它不仅包含Python解释器,还包括所有的依赖库。

    4.2 安装

    安装前同样可用pyoxidizer --version查看自己是否已经安装。

    安装PyOxidizer:

    cargo install pyoxidizer
    

    4.3 生成可执行文件

    创建一个PyOxidizer配置文件(如pyoxidizer.toml),并配置应用信息,详细配置选项请参考PyOxidizer的官方文档。

    具体样例如下:

    [package]
    name = "MyApp"
    version = "0.1.0"
    
    [[binaries]]
    name = "myapp"
    path = "src/main.py"
    # 指定Python模块作为入口点
    module = "main"
    # 可选:设置额外的命令行参数
    # args = ["--arg1", "value1"]
    
    [build]
    # 目标平台配置,可以指定多个platforms
    [[build.targets]]
    # 例如,针对Windows平台
    triple = "x86_64-pc-windows-msvc"
    # 其他可配置项如rustflags、linker-args等
    
    # 资源文件配置,确保资源被打包进二进制文件
    [[resources]]
    # 源目录
    source = "resources/**"
    # 目标目录(相对二进制文件)
    target = "resources/"
    
    # 可以指定更多的构建选项,比如链接静态Python库等
    # [build.rustflags]
    # rustflags = ["-C", "link-arg=-static-libpython"]
    
    # 其他高级配置如自定义构建脚本、条件编译等也可在此配置
    

    接着使用PyOxidizer构建你的应用:

    pyoxidizer build
    

    作者:cliff,

    物联沃分享整理
    物联沃-IOTWORD物联网 » Python程序打包成可执行文件的方法与步骤

    发表回复