python脚本源码如何使用PyOxidizer编译Windows可执行文件

使用 PyOxidizer 将上述代码编译为 Windows 可执行文件,可以按照以下步骤进行:

一、准备工作

  1. 确保已经安装了 PyOxidizer 和 Rust 开发环境,如前文所述。

二、创建 PyOxidizer 配置文件

  1. 创建一个名为pyoxidizer.toml的配置文件,内容如下:

    [build]
    name = "ExcelMerger"
    target_triple = "x86_64-pc-windows-msvc"
    strip = true
    debug = false

    [settings]
    include_python = false
    python_version = "3.11"

    [bundles.executable]
    name = "ExcelMerger.exe"
    entry_point = "<your_script_name>.py"
    resources = [
    "icon.ico", # 如果有自定义图标,可以添加在这里
    ]

    [settings.artifact_paths]
    executable = "target/{build_configuration}/{target_triple}/release/ExcelMerger.exe"

<your_script_name>.py替换为包含上述代码的 Python 脚本文件名。如果有自定义图标文件icon.ico,可以放在与配置文件相同的目录下,并在配置文件中指定。

这段配置文件是用于 PyOxidizer 来构建一个名为 "ExcelMerger" 的项目,以下是对其的详细解释:

一、[build] 部分

  • name = "ExcelMerger":指定了构建的项目名称为 "ExcelMerger"。
  • target_triple = "x86_64-pc-windows-msvc":表明目标平台是 64 位 Windows 系统,使用 Microsoft Visual C++(MSVC)工具链。
  • strip = true:在构建过程中会去除不必要的调试信息,减小最终生成的可执行文件的大小。
  • debug = false:表示不进行调试构建,通常会进行优化以提高性能。

二、[settings] 部分

  • include_python = false:指示在构建过程中不包含完整的 Python 解释器。这可能是因为你的程序有特定的 Python 环境要求或者其他原因。
  • python_version = "3.9.5":指定了目标 Python 版本为 3.9.5,这可能会影响到一些与 Python 相关的兼容性和依赖项。

三、[bundles.executable] 部分

  • name = "ExcelMerger.exe":确定生成的可执行文件的名称为 "ExcelMerger.exe"。
  • entry_point = "cwhui2.3.py":指定了项目的入口点为 "cwhui2.3.py" 文件,即程序启动时会执行这个 Python 脚本。
  • resources = [ "1.ico" ]:如果存在一个名为 "1.ico" 的图标文件,可以将其作为可执行文件的图标。

四、[settings.artifact_paths] 部分

  • executable = "target/${build_configuration}/${target_triple}/release/ExcelMerger.exe":定义了生成的可执行文件的输出路径。其中 ${build_configuration}${target_triple} 是占位符,会在构建过程中被实际的值替换。通常,构建配置可能是 "release" 或 "debug",目标三元组如前面所指定的 "x86_64-pc-windows-msvc"。

总的来说,这个配置文件为 PyOxidizer 提供了构建一个特定的 Windows 可执行文件的详细设置,包括项目名称、目标平台、入口点、资源文件和输出路径等信息。

我的系统安装的是python3.9.5,可以设为3.11吗

可以将配置中的 Python 版本设置为 3.11。

你只需要将以下部分的配置进行修改:

复制代码
[settings]
include_python = false
python_version = "3.11"

修改后,确保你的项目在 Python 3.11 环境下能够正常运行,因为不同版本的 Python 可能在语法和库的兼容性上有所不同。如果项目中有依赖特定 Python 版本的库,可能需要进行相应的调整和测试。

三、编译

  1. 在命令行中进入包含pyoxidizer.toml配置文件和 Python 脚本的目录。

  2. 运行以下命令进行编译:

    pyoxidizer build

编译过程可能需要一些时间,具体取决于你的系统性能和项目的复杂性。

编译完成后,在指定的输出目录中可以找到生成的 Windows 可执行文件ExcelMerger.exe

请注意,在实际操作中可能会遇到一些问题,需要根据具体情况进行调整和解决。例如,如果你的项目有其他依赖项,可能需要在配置文件中进行相应的设置,或者确保这些依赖项在编译环境中可用。

问题来了,应当如何安装配置PyOxidizer 和 Rust

以下是安装和配置 PyOxidizer 及 Rust 的步骤:

一、安装 Rust

  1. 访问 Rust 官方网站(Rust Programming Language)。
  2. 在官网首页,你会看到一个 "Install" 按钮,点击它。
  3. 按照页面上的指示选择适合你操作系统的安装程序进行下载。
  4. 运行安装程序,按照向导进行安装。安装过程中会自动配置好环境变量等。

安装完成后,可以在命令提示符或终端中运行以下命令来验证安装是否成功:

复制代码
rustc --version
cargo --version

如果成功安装,会显示 Rust 编译器和包管理器 Cargo 的版本信息。

二、安装 PyOxidizer

  1. 打开命令提示符或终端。

  2. 运行以下命令使用 Cargo 安装 PyOxidizer:

    cargo install pyoxidizer

安装过程可能需要一些时间,具体取决于你的网络连接和系统性能。

安装完成后,你可以运行以下命令来验证安装是否成功:

复制代码
pyoxidizer --version

如果成功安装,会显示 PyOxidizer 的版本信息。

三、配置(可选)

一般情况下,安装完成后即可使用 PyOxidizer 和 Rust。但如果有特定的需求,可能需要进行一些配置:

  1. 设置代理(如果需要):

    • 如果你的网络环境需要通过代理访问互联网,可以设置 Rust 的代理环境变量。例如,在 Windows 上可以通过设置系统环境变量HTTP_PROXYHTTPS_PROXY来指定代理服务器地址。
    • 对于 PyOxidizer,也可以在运行命令时通过环境变量传递代理信息,具体可参考 PyOxidizer 的文档。
  2. 配置 Rust 工具链:

    • Rust 允许你安装和切换不同的工具链,以满足不同的项目需求。可以使用rustup命令来管理工具链。例如,运行rustup show可以查看当前安装的工具链,运行rustup default <toolchain>可以设置默认工具链。
  3. 配置 PyOxidizer 项目:

    • PyOxidizer 的配置主要通过创建pyoxidizer.toml配置文件来完成,如前文所述。可以根据项目的具体需求调整配置文件中的选项,如要打包的 Python 版本、资源路径、输出文件名等。

    出现下面信息说明Rust 和 Cargo 没有正确安装
    PS C:\Users\HiWin11\Desktop> rustc --version

    rustc : 无法将"rustc"项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,如果包括路径,请确保路径正确,

    然后再试一次。

    所在位置 行:1 字符: 1 + rustc --version

    • ~~~~~

    • CategoryInfo : ObjectNotFound: (rustc:String) [],

    CommandNotFoundException

    • FullyQualifiedErrorId : CommandNotFoundException

    PS C:\Users\HiWin11\Desktop> cargo --version

    cargo : 无法将"cargo"项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,如果包括路径,请确保路径正确,

    然后再试一次。

    所在位置 行:1 字符: 1 + cargo --version + ~~~~~

    • CategoryInfo : ObjectNotFound: (cargo:String) [],

    CommandNotFoundException

    • FullyQualifiedErrorId : CommandNotFoundException

    出现这个问题说明 Rust 和 Cargo 没有正确安装或者没有被添加到系统的环境变量中。你可以按照以下步骤进行排查和解决:

    一、检查安装过程

  4. 确认你在安装 Rust 时没有遇到任何错误提示,并且安装过程顺利完成。

  5. 检查安装路径:默认情况下,Rust 会安装到 C:\Users\<username>\.cargoC:\Users\<username>\.rustup 等路径下。确保这些路径存在,并且包含了 Rust 和 Cargo 的可执行文件。

  6. 在 Windows 系统中,按下 Win + X,然后选择 "系统"。

  7. 在系统窗口中,点击左侧的 "高级系统设置"。

  8. 在系统属性窗口中,点击 "环境变量" 按钮。

  9. 在环境变量窗口中,检查 "系统变量" 部分中的 "Path" 变量。确保以下路径包含在其中:

    • C:\Users\<username>\.cargo\bin
    • C:\Users\<username>\.rustup\bin

如果以上方法都不能解决问题,可以尝试重新安装 Rust。在重新安装时,注意选择正确的安装选项,并确保安装过程中没有出现任何错误。

安装完成后,再次检查环境变量是否正确设置,然后尝试运行命令验证安装是否成功。

这个提示表明 Rust 需要 Microsoft C++ 构建工具才能在 Windows 上正常工作。以下是一些建议来处理这个情况:

一、安装 Visual Studio

  1. 按照提示中的链接 https://visualstudio.microsoft.com/downloads/ 访问 Visual Studio 下载页面。
  2. 下载并安装 Visual Studio。在安装过程中,务必勾选 "Desktop development with C++" 选项,以确保安装所需的 C++ 构建工具。如果你的系统语言不是英语,还可以在语言包中勾选英语选项。

二、继续安装 Rust(可选)

如果你确定自己了解正在进行的操作并且不打算使用 Visual Studio 安装 C++ 构建工具,或者你将针对 GNU ABI 进行开发,你可以选择继续安装 Rust 而不安装 C++ 构建工具。但是请注意,这可能会在后续的开发过程中导致问题。

如果你选择继续安装 Rust 而不安装 C++ 构建工具,在命令行中输入 y 并按回车键继续。如果你决定先安装 C++ 构建工具,那么在安装完成后再重新运行 Rust 的安装命令。

总的来说,为了确保 Rust 在 Windows 上的稳定运行,最好按照提示安装 Microsoft C++ 构建工具。这样可以避免在后续的开发过程中出现不必要的问题。

如何验证 Visual Studio 是否成功安装 C++ 构建工具?

以下是几种方法可以验证 Visual Studio 是否成功安装了 C++ 构建工具:

一、查看 Visual Studio 安装程序

  1. 打开 Visual Studio 安装程序。
  2. 在已安装的组件列表中,查找 "Desktop development with C++" 选项。如果该选项显示已安装,那么通常意味着 C++ 构建工具已经安装成功。

二、检查环境变量

  1. 按下 Win + X,然后选择 "系统"。
  2. 在系统窗口中,点击左侧的 "高级系统设置"。
  3. 在系统属性窗口中,点击 "环境变量" 按钮。
  4. 在环境变量窗口中,检查 "系统变量" 部分中的 "Path" 变量。查找包含 Visual Studio C++ 构建工具相关路径的条目,例如可能包含类似于 "C:\Program Files (x86)\Microsoft Visual Studio\20XX\XXX\VC\Tools\MSVC\XXX\bin\HostX64\x64" 这样的路径(其中 "20XX" 代表 Visual Studio 的版本号,"XXX" 为具体的版本标识)。

三、命令行验证

  1. 打开命令提示符。
  2. 尝试运行一些与 C++ 构建相关的命令,如 cl.exe(Microsoft C++ 编译器)或 link.exe(链接器)。如果这些命令能够被识别并且显示相应的帮助信息,那么通常表示 C++ 构建工具已正确安装。

例如,在命令提示符中输入 cl.exe /?link.exe /?,如果出现编译器或链接器的帮助文档,说明安装成功。

四、创建一个简单的 C++ 项目

  1. 在 Visual Studio 中创建一个新的 C++ 控制台应用程序项目。
  2. 尝试编译并运行这个项目。如果项目能够成功编译和运行,那么可以确定 C++ 构建工具安装正确并且能够正常工作。

出现这个问题说明 Visual Studio 的 C++ 构建工具可能没有正确安装或者没有被添加到系统的环境变量中。你可以按照以下步骤进行排查和解决:

一、检查 Visual Studio 安装

  1. 确认你在安装 Visual Studio 时确实勾选了 "Desktop development with C++" 选项,并且安装过程没有出现错误。
  2. 打开 Visual Studio 安装程序,检查已安装的组件列表,确保 C++ 构建工具显示为已安装状态。

二、检查环境变量

  1. 按下 Win + X,然后选择 "系统"。
  2. 在系统窗口中,点击左侧的 "高级系统设置"。
  3. 在系统属性窗口中,点击 "环境变量" 按钮。
  4. 在环境变量窗口中,检查 "系统变量" 部分中的 "Path" 变量。
    • 查找是否有包含 Visual Studio C++ 构建工具相关路径的条目,例如可能包含类似于 "C:\Program Files (x86)\Microsoft Visual Studio\20XX\XXX\VC\Tools\MSVC\XXX\bin\HostX64\x64" 这样的路径(其中 "20XX" 代表 Visual Studio 的版本号,"XXX" 为具体的版本标识)。
    • 如果没有找到这样的路径,可以手动添加。找到 Visual Studio 安装目录下的 VC\Tools\MSVC\XXX\bin\HostX64\x64(具体路径根据你的安装情况可能会有所不同),将这个路径添加到 "Path" 变量中。

添加完成后,关闭所有命令提示符窗口,然后重新打开一个新的命令提示符窗口,再次尝试运行 cl.exe /? 命令,看是否能够正确显示帮助信息。

安装 Rust

如果你想进行标准安装,可以直接按下回车键(选择选项 1)。

标准安装会按照默认设置进行,包括设置默认的主机架构为 x86_64-pc-windows-msvc,使用稳定版工具链,采用默认配置文件,并将相关命令添加到系统路径中。

如果你想对安装进行自定义设置,可以选择选项 2,然后根据提示进行进一步的配置选择,比如选择不同的工具链、主机架构、安装路径等。

如果不想继续安装,可以选择选项 3 取消安装。

成功安装,会显示 Rust 编译器和包管理器 Cargo 的版本信息。

复制代码
cargo install pyoxidizer

已经成功安装了 PyOxidizer v0.24.0。关于那个警告,目前如果没有影响到使用,可以先暂时忽略。如果在后续的使用中出现问题,可以根据提示去查看具体的不兼容情况并进行相应的处理。

相关推荐
数据智能老司机5 分钟前
精通 Python 设计模式——并发与异步模式
python·设计模式·编程语言
数据智能老司机5 分钟前
精通 Python 设计模式——测试模式
python·设计模式·架构
数据智能老司机5 分钟前
精通 Python 设计模式——性能模式
python·设计模式·架构
c8i15 分钟前
drf初步梳理
python·django
每日AI新事件15 分钟前
python的异步函数
python
这里有鱼汤1 小时前
miniQMT下载历史行情数据太慢怎么办?一招提速10倍!
前端·python
databook11 小时前
Manim实现脉冲闪烁特效
后端·python·动效
程序设计实验室11 小时前
2025年了,在 Django 之外,Python Web 框架还能怎么选?
python
倔强青铜三12 小时前
苦练Python第46天:文件写入与上下文管理器
人工智能·python·面试
用户25191624271116 小时前
Python之语言特点
python