内容只提供Windows 10 与 Windows 11 下,搭建 Python 3.12 环境,并使用 Nuitka 将脚本打包为可执行文件的详细流程。全文分为以下几部分:

  1. 准备工作与系统要求

  2. 安装 Python 3.12

  3. 配置环境变量与 pip

  4. 创建虚拟环境(推荐)

  5. 安装编译工具链

  6. 安装 Nuitka 及相关依赖

  7. 编写示例脚本

  8. 使用 Nuitka 打包

  9. 常见问题与排错

  10. 附录:常用命令汇总


1. 准备工作与系统要求

  • 操作系统:Windows 10(1909+以上)或 Windows 11

  • 权限:管理员权限(安装编译器、修改系统环境变量时需要)

  • 网络:能够访问 python.org 和 PyPI 源


2. 安装 Python 3.12

  1. 下载安装包

    • 访问官网:Python Releases for Windows | Python.org

    • 选择 Windows installer (64-bit) for Python 3.12.x MSI 安装包

  2. 运行 MSI 安装程序

    • 勾选 “Add Python 3.12 to PATH”

    • 选择 “Customize installation” → 勾选 pip、tcl/tk、文档等 → “Next”

    • 勾选 “Install for all users”(若有管理员权限)

    • 安装完成后,弹出提示 “Setup was successful”

  3. 验证安装

    python --version
    # 应输出:Python 3.12.x
    pip --version
    

    3. 配置环境变量与 pip

    • PATH 自动配置:如安装时已勾选,PATH 中应包含 C:\Program Files\Python312\...Scripts\

    • 更新 pip、setuptools、wheel

      python -m pip install --upgrade pip setuptools wheel
      

    4. 创建虚拟环境(推荐)

    在项目根目录下执行:

    python -m venv venv
    

    激活虚拟环境:

    • PowerShell:

      .\venv\Scripts\Activate.ps1
      
    • CMD:

      .\venv\Scripts\activate.bat
      

    激活后,命令行提示符前会出现 (venv)


    5. 安装编译工具链

    Nuitka 在 Windows 上默认使用 MSVC(Visual Studio Build Tools),也可选用 MinGW。

    5.1 MSVC(推荐)

    1. 下载并安装 Visual Studio Build Tools 2022

    2. 勾选 “C++ build tools” 工作负载,确保包含 “Windows 10 SDK”

    安装完成后,打开 “x64 Native Tools Command Prompt for VS 2022” 或在 PowerShell/CMD 预先运行:

    call "C:\Program Files\Microsoft Visual Studio\2022\BuildTools\VC\Auxiliary\Build\vcvars64.bat"
    

    5.2 MinGW(可选)

    1. 安装 mingw-w64

    2. 将 MinGW 的 bin 目录加入 PATH,例如 C:\mingw-w64\mingw64\bin


    6. 安装 Nuitka 及相关依赖

    确保虚拟环境已激活,然后:

    pip install nuitka
    # 若需要 GUI 支持,需安装 pillow、tkinter 等
    # pip install pillow
    

    检查安装:

    python -c "import nuitka; print(nuitka.__version__)"
    

    7. 编写示例脚本

    在项目目录中新建 hello.py,内容如下:

    def main():print("Hello, Nuitka 打包!")if __name__ == "__main__":main()
    

    8. 使用 Nuitka 打包

    下面以几种常用方式示例:

    8.1 简单编译

    nuitka --standalone --mingw64 hello.py
    
    • --standalone:生成独立目录,可跨机器运行

    • --mingw64:指定使用 MinGW 编译(若使用 MSVC 可省略此参数)

    完成后,会在当前目录生成 hello.dist\,其中包含可执行文件 hello.exe 及所需 DLL。

    8.2 生成单文件

    nuitka --onefile --standalone hello.py
    
    • --onefile:将所有文件打包成一个 exe

    • 注意:单文件模式下首次启动会有解包延迟

    8.3 禁用控制台窗口(GUI 程序)

    nuitka --onefile --windows-disable-console gui_app.py
    

    8.4 进阶选项

    • --enable-plugin=tk-inter:支持 Tkinter

    • --enable-plugin=brotli:支持 Brotli 压缩

    • --lto=yes:启用链接时优化

    • --nofollow-import-to=<module>:排除某些模块

    可通过 nuitka --help 查看完整参数列表。


    9. 常见问题与排错

    问题

    解决办法

    “Visual C++ build tools not found”

    需安装 Visual Studio Build Tools,并运行 vcvars64.bat。

    打包后运行缺少 .pyd.dll

    确保使用 --standalone,并检查日志里的 “Missing module” 提示。

    单文件模式运行卡顿

    可尝试移除 --onefile 或使用 --static-libpython 减少解压操作。

    打包 GUI 应用无界面

    使用 --windows-disable-console 并加上相应 GUI 插件。


    10. 附录:常用命令汇总

    # 更新工具
    python -m pip install --upgrade pip setuptools wheel# 创建并激活 venv
    python -m venv venv
    .\venv\Scripts\activate.bat      # CMD
    .\venv\Scripts\Activate.ps1      # PowerShell# 安装 Nuitka
    pip install nuitka# MSVC 环境配置(示例路径)
    call "C:\Program Files\Microsoft Visual Studio\2022\BuildTools\VC\Auxiliary\Build\vcvars64.bat"# 基础打包
    nuitka --standalone hello.py# 单文件
    nuitka --onefile --standalone hello.py# 禁用控制台
    nuitka --onefile --windows-disable-console gui_app.py# 启用 LTO
    nuitka --standalone --lto=full app.py
    

    最后,您已完成在 Windows 10/11 上搭建 Python 3.12 环境,并了解使用 Nuitka 进行打包的相关流程。根据项目需求,可在此基础上添加更多插件及自定义编译选项。

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

    如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

    相关文章

    深入解析C#接口声明:核心规则与最佳实践

    接口声明的核心约束 禁止包含的成员类型 ❌ 数据成员&#xff08;字段、常量&#xff09;❌ 静态成员&#xff08;静态方法/属性&#xff09; 理由&#xff1a;接口仅定义契约&#xff0c;不涉及实现或状态存储。 允许的成员类型&#xff08;仅非静态函数成员&#xff09; ✅ 方…

    Javaweb - 10.6 请求转发和响应重定向

    目录 概述 请求转发 逻辑图 测试代码 总结 响应重定向 逻辑图 测试代码 总结 完&#xff01; 概述 什么是请求转发和响应重定向&#xff1f; 请求转发和响应重定向&#xff0c;是 web 应用中&#xff0c;间接访问项目资源的两种手段&#xff0c;也是 Servlet 控制页…

    severb

    题目一 解决方法&#xff1a; 题目二&#xff1a; 解决方法&#xff1a; 题目三&#xff1a; xfs&#xff1a; ext&#xff1a; 题目四&#xff1a; 解决方法&#xff1a; fdisk中命令&#xff1a;n&#xff08;新建&#xff09; 主分区 、id、起始块都为默认、结束块为756M t…

    Hbase2.6.2集群部署(最新版)

    配套版本安装&#xff1a; Hadoop 3.4.1 Zookeeper3.9.3 Hbase2.6.2 前置安装 Linux环境下部署Zookeeper3.9.3(最新版)集群部署-CSDN博客 Linux环境下Hadoop3.4.1(最新版本)集群部署-CSDN博客 一、文件解压 cd /usr/local/soft/ tar -zxvf hbase-2.6.2-bin.tar.gz 二、修改启…

    IDEA-安装IDEA开发工具

    目录 一.从官网获取安装包 二.进行安装 三.首次运行IDEA 四.创建Java项目&#xff0c;检测是否运行成功 一.从官网获取安装包 IDEA官网https://www.jetbrains.com/idea/ IDEA是分为免费的社区版和付费的最终版的&#xff0c;这里强烈建议使用付费的最终版&#xff0c;免费社…

    房屋结构安全监测系统:技术架构与应用解析

    政策背景&#xff1a;制度驱动下的安全升级​​近年来&#xff0c;国家层面密集出台多项房屋安全管理政策&#xff0c;为智能化监测技术提供了明确的制度支撑和发展方向&#xff1a;专项整治要求&#xff1a;国务院《全国自建房安全专项整治作方案》明确提出“用3年左右时间完成…

    goole chrome变更默认搜索引擎为百度

    找到浏览器的设置点击设置跳转到设置页面点击此页面的 【搜索引擎】栏点击【管理搜索引擎和网站搜索】设置搜索引擎 网址格式http://www.baidu.com/s?wd%s&ie{inputEncoding}

    万物智联时代启航:鸿蒙OS重塑全场景开发新生态

    目录 HarmonyOS简介&#xff1a;分布式操作系统&#xff0c;开启万物智联新时代 HarmonyOS发展历程&#xff1a;从破局到引领 核心特性&#xff1a;分布式技术三支柱 应用场景&#xff1a;全场景覆盖的鸿蒙生态 什么选择鸿蒙开发&#xff1f;技术红利与市场蓝海 结语&…

    LangChain4j 系统化知识学习笔记(接入模型、AiService、持久化记忆、增强RAG)

    文章目录前言一、认识**LangChain4j**1.1、历史背景1.2、主要功能1.3、场景二、SpringBoot接入大模型2.1、项目基本配置 & pom引入依赖2.2、接入大模型2.2.1、**LangChain4j** 库结构2.2.2、引入LangChain4j相关依赖2.2.3、补充LangChain4j单测来验证与gpt交互2.3、整合lan…

    什么是时序数据库?——原理、特点与应用

    在大数据和物联网时代&#xff0c;数据的产生速度和数量都在飞速增长。尤其是在工业监控、金融分析、物联网等领域&#xff0c;数据往往以“时间序列”的形式不断产生。为了高效地存储和分析这类数据&#xff0c;时序数据库&#xff08;Time Series Database&#xff0c;简称TS…

    FastAPI+React19 ERP系统实战 第01期

    一、基础环境 1.1 项目依赖 package.json {"name": "erp-web","version": "1.0.0","description": "ERP系统前端 - React 19","main": "index.js","type": "module",…

    【机器学习笔记 Ⅱ】1 神经网络

    神经网络是一种受生物神经元启发设计的机器学习模型&#xff0c;能够通过多层非线性变换学习复杂的输入-输出关系。它是深度学习的基础&#xff0c;广泛应用于图像识别、自然语言处理、游戏AI等领域。1. 核心思想 生物类比&#xff1a;模仿人脑神经元的工作方式&#xff0c;通过…

    谢飞机的Java高级开发面试:从Spring Boot到分布式架构的蜕变之旅

    面试现场&#xff1a;谢飞机的求职奇遇记 "请坐&#xff0c;谢先生。我看你简历上写了精通Lombok&#xff1f;"面试官推了推金丝眼镜。 谢飞机一愣&#xff1a;"啊...这个..."突然掏出手机&#xff0c;"您看我GitHub开源项目里用了SneakyThrows&…

    一站式整合:解锁高效后端管理利器——Motia

    在当今的科技世界中&#xff0c;企业对于后端系统的要求越来越高。无论是处理复杂的 API 请求、管理后台任务&#xff0c;还是集成 AI 代理&#xff0c;这些都需要一个强大的框架来支撑。而今天&#xff0c;我们要介绍的 Motia 正是这样一个现代化、统一的后端框架&#xff0c;…

    如何将信息从 iPhone 同步到Mac(完整步骤和示意图)

    如果您是 Apple 用户&#xff0c;您一定知道在所有设备上保持同步是多么便捷。Apple 生态系统的一大亮点就是能够在 iPhone 和 Mac 之间同步 iMessage 和短信。如果您想了解如何将信息从 iPhone 同步到 Mac&#xff0c;千万不要错过本教程。快速浏览一下这些方法&#xff1a;第…

    【C++字符串变换】2022-7-20

    缘由C问题-字符串变换-编程语言-CSDN问答 void 字符串变换() {string s "", t ""; char f; int x 0, g 1, l 0;cin >> s; l s.size();while (x <l){f s[x];if (f s[x 1]){g, s.erase(x, 1);}else{if (g > 1){s.erase(x, 1);t s.sub…

    Web攻防-XMLXXE无回显带外SSRF元数据DTD实体OOB盲注文件拓展

    知识点&#xff1a; 1、WEB攻防-XML&XXE-注入原理&分类&修复 2、WEB攻防-XML&XXE-文件读取&SSRF&实体引用 3、WEB攻防-XML&XXE-无回显&升级拓展&挖掘思路 一、演示案例-WEB攻防-XML&XXE-注入原理&分类&安全影响 详细点 XML被…

    Node中Unexpected end of form 错误

    文章目录Unexpected end of form 错误为什么 app.use(upload.any()) 会导致 Unexpected end of form 错误&#xff1f;1. 主要问题分析app.use(upload.any()) 的问题错误场景2. 解决方案✅ 方案 1&#xff1a;仅在需要文件上传的路由使用 Multer&#xff08;推荐&#xff09;✅…

    通过Curtain 解决方案保障BIM模型安全共享—建筑业的防泄密实战

    某跨海大桥项目突发数据泄露事件&#xff1a;主桥钢结构的BIM模型被外泄&#xff0c;核心参数流入竞争对手手中&#xff0c;导致项目风险评估升级。调查发现&#xff0c;泄漏源头是一名施工方的项目经理。尽管BIM系统已经能够控制哪些人可以阅读、修改、甚至下载资料的权限&…

    ULVAC爱发科RFS03D RF POWER SUPPLY INSTRUCTION MANUAL RF射频电源

    ULVAC爱发科RFS03D RF POWER SUPPLY INSTRUCTION MANUAL RF射频电源