記錄在Windows系統用Python 3.12環境實現Nuitka過程

內容只提供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射頻電源