【python】打包成可执行程序 对python程序进行打包的方法

一、概述

随着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,原文地址:https://blog.csdn.net/weixin_74798742/article/details/139867952

%s 个评论

要回复文章请先登录注册