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

news2024/11/23 15:13:46

使用 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>\.cargo 和 C:\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。关于那个警告,目前如果没有影响到使用,可以先暂时忽略。如果在后续的使用中出现问题,可以根据提示去查看具体的不兼容情况并进行相应的处理。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2114356.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

go急速入门API开发

go急速入门 1、安装Go和对应编辑器2、编写helloWord3、项目目录开发4、编写一个http服务器5、 使用Gin框架基本使用使用部分中间件自定义中间件 6、部署 1、安装Go和对应编辑器 go官网&#xff0c;下载自己电脑对应版本即可。安装完成之后打开cmd输入go即可弹出对应提示。 对…

ffmpeg(各个系统版本安装- Windows11-Mac-Linux)

各个系统上的安装不建议使用编译安装&#xff0c;大佬的话可以 编译安装会各种环境问题&#xff0c;直接使用别人安装好的就行 1.Windows11上安装ffmpeg 1.官网下载ffmpeg 进入Download FFmpeg网址&#xff0c;点击下载windows版ffmpeg&#xff0c;使用别人编译好的版本即可 …

文法的例题

答案&#xff1a;B 知识点&#xff1a; 文法 一个形式文法是一个有序四元组G{V,T,S,P}&#xff0c;其中&#xff1a; V&#xff1a;非终结符。不是语言组成部分&#xff0c;不是最终结果&#xff0c;可理解为占位符 T&#xff1a;终结符。是语言的组成部分&#xff0c;是最…

自用NAS系列1-设备

拾光坞 拾光坞多账号绑定青龙面板SMBWebdav小雅alist下载到NASDocker安装迅雷功能利用qBittorrentEEJackett打造一站式下载工具安装jackett插件 外网访问内网拾光客户端拾光穿透公网ipv6路由器配置ipv6拾光坞公网验证拾光坞域名验证 拾光坞 多账号绑定 手机注册拾光坞账号&am…

Web Bluetooth 与点对点连接

前言 需求需要实现手持终端设备与 web 网页的点对点数据传输&#xff0c;不希望有服务器参与&#xff0c;想到了 web 的 USB 与 Bluetooth API&#xff0c;对 Web Bluetooth API 进行了研究。 蓝牙 GATT 基础知识 GATT&#xff08;通用属性配置文件&#xff0c;蓝牙低功耗&a…

K8S 发布应用

前言 昨儿个用 unbuntu20.04 又装了一次K8S 用的 kubeadm containerd Cilium (CNI) 又重新撸了一遍 这里只记录 应用发布的笔记 正文 #创建deployment kubectl create deployment nginx --imagenginx #我这边大约30秒后显示为 ready kubectl get deployments kubectl desc…

4.7 Sensors -- useScroll

4.7 Sensors – useScroll https://vueuse.org/core/useScroll/ 作用 响应式的监听滚动位置和状态。 官方示例 <script setup lang"ts"> import { useScroll } from vueuse/coreconst el ref<HTMLElement | null>(null) const { x, y, isScrolling…

【Python系列】只更新非空的字段

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

数字电路专题:verilog 阻塞赋值和非阻塞赋值

verilog 阻塞赋值 和 非阻塞赋值 “”阻塞赋值&#xff0c; ”<”非阻塞赋值。阻塞赋值为执行完一条赋值语句&#xff0c;再执行下一条&#xff0c;可理解为顺序执行&#xff0c;而且赋值是立即执行&#xff1b; 非阻塞赋值可理解为并行执行&#xff0c;不考虑顺序&#x…

【python计算机视觉编程——7.图像搜索】

python计算机视觉编程——7.图像搜索 7.图像搜索7.1 基于内容的图像检索&#xff08;CBIR&#xff09;从文本挖掘中获取灵感——矢量空间模型&#xff08;BOW表示模型&#xff09;7.2 视觉单词**思想****特征提取**&#xff1a; 创建词汇7.3 图像索引7.3.1 建立数据库7.3.2 添加…

构建并训练卷积神经网络(CNN)对CIFAR-10数据集进行分类

深度学习实践&#xff1a;构建并训练卷积神经网络&#xff08;CNN&#xff09;对CIFAR-10数据集进行分类 引言 在计算机视觉领域中&#xff0c;CIFAR-10数据集是一个经典的基准数据集&#xff0c;广泛用于图像分类任务。本文将介绍如何使用PyTorch框架构建一个简单的卷积神经…

微信小程序uniappvue3版本-控制tabbar某一个的显示与隐藏

1. 首先在pages.json中配置tabbar信息 2. 在代码根目录下添加 tabBar 代码文件 直接把微信小程序文档里面的四个文件复制到自己项目中就可以了 3. 根据自己的需求更改index.js文件 首先我这里需要判断什么时候隐藏某一个元素&#xff0c;需要引入接口 然后在切换tabbar时&#…

git:认识git和基本操作(1)

目录 一、版本控制器 1.安装git 2.创建git本地仓库 3.配置git 二、git操作&#xff08;1&#xff09; 1.工作区、暂存区、版本库 2.添加文件 3.查看.git 4.修改文件 一、版本控制器 所谓的版本控制器&#xff0c;就是能让你了解到每一个文件的修改历史。相应的&#x…

Maven的安装

一、安装 压缩包解压完的目录如下所示&#xff08;此处为绿色免安装版&#xff09;&#xff1a; &#xff08;其余三个文件是针对Maven版本&#xff0c;第三方软件等简要介绍&#xff09; 二、环境变量 前提&#xff1a; jdk最低版本为JAVA7&#xff08;即jdk17&#xff09…

R语言统计分析——重复测量方差分析

参考资料&#xff1a;R语言实战【第2版】 所谓重复测量方差分析&#xff0c;即受试者被测量不止一次。本例使用数据集市co2数据集&#xff1a;因变量是二氧化碳吸收量&#xff08;uptake&#xff09;&#xff0c;自变量是植物类型&#xff08;Type&#xff09;和七种水平的二氧…

Gitness 基础安装

文章目录 Docker 安装注册账户创建项目导入已有仓库配置 Github Token同步源代码仓库 官方链接 Gitness was the next step in the evolution of Drone, from continuous integration to source code hosting, bringing code management and pipelines closer together. Gitnes…

自动化表格处理的革命:智能文档系统技术解析

在当今数据驱动的商业环境中&#xff0c;表格数据的自动化处理成为了企业提高效率、降低成本的关键。企业智能文档系统在智能表格识别方面展现出卓越的性能&#xff0c;通过精准识别和处理各种通用表格&#xff0c;显著提升了企业文档管理的智能化水平。本文将深入探讨该系统在…

STM32的使用方法一

注:我采用的是STM32F103RC芯片、相应的电路图和STM32CubeIDE软件这是在STM32CubeIDE软件定义芯片后&#xff0c;所给的必要的代码逻辑&#xff0c;加上了注释 #include "main.h"/* Private variables ---------------------------------------------------------*//…

Java数据结构(八)——插入排序、希尔排序

文章目录 插入排序算法介绍代码实现复杂度和稳定性 希尔排序算法介绍代码实现复杂度和稳定性 将这两种排序放在一起的原因是它们都属于 “插入”(式)排序。 还有很多排序思想&#xff0c;这里不放在一篇文章介绍是因为会导致篇幅过长&#xff0c;我们会按分类多次介绍不同的排序…

[数据集][目标检测]智慧农业草莓叶子病虫害检测数据集VOC+YOLO格式4040张9类别

数据集格式&#xff1a;Pascal VOC格式YOLO格式(不包含分割路径的txt文件&#xff0c;仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数)&#xff1a;4040 标注数量(xml文件个数)&#xff1a;4040 标注数量(txt文件个数)&#xff1a;4040 标注…