最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

PyInstaller打包Python腳本的使用示例

 更新時(shí)間:2025年04月30日 09:32:53   作者:Tiandaren  
本文主要介紹了PyInstaller打包Python腳本的使用示例,通過(guò)?PyInstaller,可以將Python腳本打包成?.exe文件(適用于?Windows)或適用于?macOS?和?Linux?的可執(zhí)行文件,感興趣的可以了解一下

1. 寫(xiě)在前面

通常,在用 Python 編寫(xiě)完一個(gè)腳本后,需要將它部署并集成到一個(gè)更大的項(xiàng)目中。常見(jiàn)的集成方式有以下幾種:

  • 使用 PyInstaller 打包。
  • 使用 Docker 打包。
  • 將 Python 嵌入到 C++ 代碼中,并封裝成類(lèi)。
  • 將 Python 代碼轉(zhuǎn)換為 C++ 代碼。

本文介紹其中一種方式——使用 PyInstaller 打包。通過(guò) PyInstaller,可以將 Python 腳本打包成 .exe 文件(適用于 Windows)或適用于 macOS 和 Linux 的可執(zhí)行文件,用戶無(wú)需安裝 Python 或任何相關(guān)依賴(lài),便能直接運(yùn)行程序。

主要優(yōu)勢(shì):

  • 將 Python 腳本打包成獨(dú)立可執(zhí)行文件,方便分發(fā)和運(yùn)行。
  • 支持單文件打包、圖標(biāo)定制、以及額外文件的捆綁。
  • 可選隱藏控制臺(tái)窗口,適合圖形化應(yīng)用(GUI)程序。

適用場(chǎng)景:

  • 發(fā)布桌面工具或命令行程序。
  • 讓沒(méi)有 Python 環(huán)境的用戶也能使用你的工具。
  • 分享自包含的 Python 項(xiàng)目,確保目標(biāo)機(jī)器能夠順利運(yùn)行。

2. 打包指令解析與參數(shù)詳解

參數(shù)名描述示例類(lèi)型必須默認(rèn)值
--onefile將所有依賴(lài)文件打包為單個(gè)可執(zhí)行文件。pyinstaller --onefile example.pyboolFalse
--noconsole隱藏控制臺(tái)窗口(適用于 GUI 應(yīng)用)。pyinstaller --noconsole gui_app.pyboolFalse
--name指定生成的可執(zhí)行文件名稱(chēng)。pyinstaller --name=my_app example.pystr源文件名(無(wú)擴(kuò)展)
--icon設(shè)置可執(zhí)行文件的圖標(biāo)(需提供 .ico 文件)。pyinstaller --icon=app_icon.ico example.pystrNone
--add-data捆綁額外文件(如配置文件、靜態(tài)資源等)。pyinstaller --add-data "config.yaml;." example.pystrNone
--clean清理之前的構(gòu)建緩存,強(qiáng)制重新打包。pyinstaller --clean example.pyboolFalse
--hidden-import手動(dòng)添加隱藏的依賴(lài)模塊(通常是自動(dòng)檢測(cè)遺漏的依賴(lài))。pyinstaller --hidden-import=requests example.pylist自動(dòng)檢測(cè)

3. 基礎(chǔ)步驟

1. 安裝 PyInstaller

在終端(或命令行)中運(yùn)行以下命令,安裝 PyInstaller:

pip install pyinstaller

2. 使用基礎(chǔ)命令進(jìn)行打包

假設(shè)你有一個(gè) Python 腳本 example_script.py,使用下面的命令將其打包為一個(gè)獨(dú)立的可執(zhí)行文件:

pyinstaller --onefile example_script.py
  • 該命令會(huì)將所有依賴(lài)項(xiàng)和代碼打包成一個(gè)單一的 .exe 文件。
  • 打包后,可以在 dist 目錄下找到生成的可執(zhí)行文件。

4. 常見(jiàn)的用法示例

示例 1:基礎(chǔ)打包

將 example_script.py 打包為一個(gè)單文件可執(zhí)行程序:

pyinstaller --onefile example_script.py

示例 2:自定義名稱(chēng)和圖標(biāo)

將輸出文件命名為 my_program.exe,并指定圖標(biāo)文件為 app_icon.ico

pyinstaller --onefile --name=my_program --icon=app_icon.ico example_script.py

示例 3:捆綁額外文件

將配置文件 config.yaml 一起捆綁進(jìn)可執(zhí)行文件:

pyinstaller --onefile --add-data "config.yaml;." example_script.py

注意:在 Windows 系統(tǒng)中,路徑分隔符用分號(hào) ;,而在 macOS/Linux 中使用冒號(hào) :。

示例 4:解決缺失依賴(lài)問(wèn)題

如果在運(yùn)行時(shí)遇到某個(gè)模塊丟失的錯(cuò)誤,可以通過(guò) --hidden-import 指定手動(dòng)引入依賴(lài):

pyinstaller --onefile --hidden-import=requests example_script.py

示例 5:隱藏控制臺(tái)窗口

適用于圖形界面(GUI)應(yīng)用程序,運(yùn)行時(shí)隱藏控制臺(tái)窗口:

pyinstaller --onefile --noconsole gui_app.py

5. 注意事項(xiàng)(路徑)

  • 路徑問(wèn)題:使用 --add-data 時(shí),不同操作系統(tǒng)的路徑分隔符需特別注意。

    • Windows:"source;destination"
    • macOS/Linux:"source:destination"
  • 文件路徑問(wèn)題:在代碼中訪問(wèn)本地文件時(shí),使用相對(duì)路徑獲取的文件可能會(huì)在打包后無(wú)法找到。此時(shí),建議使用以下方式獲取正確的文件路徑:

BASE_DIR = os.path.dirname(os.path.realpath(sys.argv[0]))

6. 錯(cuò)誤處理和日志記錄

在打包的 Python 應(yīng)用中,為了方便調(diào)試,可以加入錯(cuò)誤處理代碼,將錯(cuò)誤信息記錄到文件中,幫助定位問(wèn)題。

try:
    # 代碼邏輯
    pass
except Exception as e:
    print("An error occurred:", e)
    with open("error_log.txt", "w") as f:
        f.write(str(e))

如果可執(zhí)行文件出現(xiàn)問(wèn)題,能夠在 error_log.txt 中查看詳細(xì)的錯(cuò)誤信息。

例如,

在這里插入圖片描述

這就是一個(gè)文件路徑錯(cuò)誤的報(bào)錯(cuò),原因在于生成的可執(zhí)行文件是在 dist 目錄下,但是文件路徑是相對(duì)路徑,在 ../ 上,知道問(wèn)題就可以解決了。否則,有時(shí)候連報(bào)錯(cuò)都不知道在哪。

另外,如果想要更加優(yōu)雅地打包python,建議配合以下教程食用:
Python 參數(shù)配置使用 XML 文件的教程:輕松管理你的項(xiàng)目配置

到此這篇關(guān)于PyInstaller打包Python腳本的使用示例的文章就介紹到這了,更多相關(guān)PyInstaller打包Python腳本內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 利用Python如何畫(huà)一顆心、小人發(fā)射愛(ài)心

    利用Python如何畫(huà)一顆心、小人發(fā)射愛(ài)心

    這篇文章主要給大家介紹了關(guān)于利用Python如何畫(huà)一顆心、小人發(fā)射愛(ài)心的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-02-02
  • Pytorch 實(shí)現(xiàn)focal_loss 多類(lèi)別和二分類(lèi)示例

    Pytorch 實(shí)現(xiàn)focal_loss 多類(lèi)別和二分類(lèi)示例

    今天小編就為大家分享一篇Pytorch 實(shí)現(xiàn)focal_loss 多類(lèi)別和二分類(lèi)示例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-01-01
  • python腳本實(shí)現(xiàn)音頻m4a格式轉(zhuǎn)成MP3格式的實(shí)例代碼

    python腳本實(shí)現(xiàn)音頻m4a格式轉(zhuǎn)成MP3格式的實(shí)例代碼

    這篇文章主要介紹了python腳本實(shí)現(xiàn)音頻m4a格式轉(zhuǎn)成MP3格式的實(shí)例代碼,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-10-10
  • 使用PyInstaller庫(kù)把Python程序打包成exe

    使用PyInstaller庫(kù)把Python程序打包成exe

    這篇文章介紹了使用PyInstaller庫(kù)把Python程序打包成exe的方法,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-05-05
  • Python實(shí)現(xiàn)打印金字塔圖案的方法詳解

    Python實(shí)現(xiàn)打印金字塔圖案的方法詳解

    使用簡(jiǎn)單的?for?循環(huán)在?python?中打印模式。第一個(gè)外循環(huán)用于處理行數(shù),?而內(nèi)嵌套循環(huán)用于處理列數(shù)。操作打印語(yǔ)句,可以打印不同的數(shù)字圖案、字母圖案或星形圖案。本文將利用這些方法實(shí)現(xiàn)打印金字塔圖案,需要的可以參考一下
    2022-09-09
  • pycharm社區(qū)版安裝node.js插件運(yùn)行js代碼方法

    pycharm社區(qū)版安裝node.js插件運(yùn)行js代碼方法

    PyCharm可以說(shuō)是當(dāng)今最流行的一款Python IDE了,下面這篇文章主要給大家介紹了關(guān)于pycharm社區(qū)版安裝node.js插件運(yùn)行js代碼的相關(guān)資料,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-10-10
  • 簡(jiǎn)介Django框架中可使用的各類(lèi)緩存

    簡(jiǎn)介Django框架中可使用的各類(lèi)緩存

    這篇文章主要介紹了簡(jiǎn)介Django框架中可使用的各類(lèi)緩存,Django是人氣最高的Python web開(kāi)發(fā)框架,需要的朋友可以參考下
    2015-07-07
  • Python 讀取.dat 文件的實(shí)現(xiàn)

    Python 讀取.dat 文件的實(shí)現(xiàn)

    這篇文章主要介紹了Python 讀取.dat 文件的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-04-04
  • Django利用elasticsearch(搜索引擎)實(shí)現(xiàn)搜索功能

    Django利用elasticsearch(搜索引擎)實(shí)現(xiàn)搜索功能

    這篇文章主要介紹了Django利用elasticsearch(搜索引擎)實(shí)現(xiàn)搜索功能,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-11-11
  • Python爬取用戶觀影數(shù)據(jù)并分析用戶與電影之間的隱藏信息!

    Python爬取用戶觀影數(shù)據(jù)并分析用戶與電影之間的隱藏信息!

    看電影前很多人都喜歡去 『豆瓣』 看影評(píng),所以我爬取44130條 『豆瓣』 的用戶觀影數(shù)據(jù),分析用戶之間的關(guān)系,電影之間的聯(lián)系,以及用戶和電影之間的隱藏關(guān)系,需要的朋友可以參考下
    2021-06-06

最新評(píng)論

揭西县| 嘉黎县| 湘乡市| 郯城县| 疏勒县| 襄城县| 福安市| 肇庆市| 冕宁县| 宝清县| 临颍县| 叶城县| 平武县| 含山县| 南皮县| 奉新县| 珲春市| 神农架林区| 漠河县| 庄河市| 金阳县| 乌海市| 孟村| 女性| 缙云县| 永安市| 保靖县| 荣成市| 米泉市| 鹿邑县| 长治县| 专栏| 甘肃省| 赫章县| 宜宾市| 万年县| 闸北区| 长汀县| 吴堡县| 竹山县| 崇信县|