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

最簡(jiǎn)單的pyinstaller打包exe方式小結(jié)

 更新時(shí)間:2025年07月28日 08:25:57   作者:油潑辣子多加  
本文主要介紹了最簡(jiǎn)單的pyinstaller打包exe方式小結(jié),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

1.背景

  1. 在實(shí)際工作過(guò)程中,python項(xiàng)目文件完成開(kāi)發(fā)后,存在打包成exe使用的需求,而如何正確并且快捷的實(shí)現(xiàn)打包尤為重要,目前python打包的方式很多,包括py2exe,pyinstaller,cx_Freeze,nuitka以及Pyarmor,本次只針對(duì)pyinstaller進(jìn)行說(shuō)明。
  2. PyInstaller是一個(gè)用于將Python應(yīng)用程序打包成獨(dú)立可執(zhí)行文件的庫(kù)。它可以將Python代碼及其所有依賴項(xiàng)(包括第三方庫(kù)和資源文件)打包到一個(gè)單獨(dú)的可執(zhí)行文件中,使得應(yīng)用程序可以在沒(méi)有Python解釋器環(huán)境的系統(tǒng)上獨(dú)立運(yùn)行。

2.特點(diǎn)

以下是PyInstaller的一些主要特點(diǎn)和功能:

  • 跨平臺(tái)支持:PyInstaller可以在主流操作系統(tǒng)(如Windows、macOS和Linux)上運(yùn)行,并生成相應(yīng)平臺(tái)的可執(zhí)行文件
  • 自動(dòng)化打包:PyInstaller會(huì)分析Python代碼及其依賴項(xiàng),自動(dòng)檢測(cè)所需的模塊和資源文件,并將它們打包到一個(gè)可執(zhí)行文件中
  • 獨(dú)立可執(zhí)行文件:打包后的可執(zhí)行文件包含了應(yīng)用程序的所有依賴項(xiàng),不需要用戶單獨(dú)安裝Python解釋器或相關(guān)庫(kù)
  • 支持多種打包選項(xiàng):PyInstaller提供了多種打包選項(xiàng),可以定制可執(zhí)行文件的行為,如設(shè)置命令行參數(shù)、圖標(biāo)、文件路徑等
  • 支持多種GUI框架:PyInstaller支持常見(jiàn)的GUI框架,如Tkinter、PyQt、wxPython等,可以將基于這些框架開(kāi)發(fā)的應(yīng)用程序打包為獨(dú)立可執(zhí)行文件

3.打包方式

3.1單文件打包法

單個(gè)文件內(nèi)容,直接使用pyinstaller命令打包,打包后自動(dòng)生成exe運(yùn)行文件使用。

# 1.執(zhí)行命令
pyinstaller -F xxx.py

# 2.去生成的dist文件夾找xxx.exe運(yùn)行

# 3.運(yùn)行成功,xxx.exe則為可執(zhí)行文件,刪除其它文件

3.2多文件打包法

當(dāng)存在多個(gè)文件時(shí),需要指定好程序入口文件,使用pyinstall -D后,生成spec文件,修改spec文件,再使用pyinstaller -F打包。

# 1.執(zhí)行命令,xxx.py為程序入口文件
pyinstall -D xxx.py 

# 2.刪除生成的bulid和dist文件夾,僅保留xxx.spec文件

# 3.修改xxx.spec文件,詳見(jiàn)2.2.1

# 4.執(zhí)行命令
pyinstaller -F xxx.spec

# 5.去dist文件夾下找xxx.exe文件

# 6.運(yùn)行成功,刪除臨時(shí)文件目錄build;dist目錄為打包的結(jié)果,可執(zhí)行文件和其它程序運(yùn)行的關(guān)聯(lián)文件都在這個(gè)目錄下

3.3配置文件打包法(最為簡(jiǎn)單)

此種方法最為直接簡(jiǎn)單,先生成spec配置文件,然后修改文件后,直接使用pyinstaller命令打包。

#第一步生成配置文件
pyi-makespec XXX.py   獲取spec配置

#第二步修改配置文件

#第三步打包命令
pyinstaller  XXX.spec

打包過(guò)程如圖:

打包成功結(jié)果如圖:

4.SPEC配置文件

以下是spec配置文件,還可以直接按照文件內(nèi)容提示填入所需文件名、打包名稱等,從而更為簡(jiǎn)單的使用pyinstaller XXX.spec完成打包。

# -*- mode: python ; coding: utf-8 -*-
block_cipher = None
a = Analysis(
    ['PY主文件',
    'PY1輔助文件',
    'PY2輔助文件',
    'PY3輔助文件',],
    pathex=['多個(gè)PY文件所在路徑'],
    binaries=[],# 程序調(diào)用外部pyd、dll文件(二進(jìn)制文件路徑)以數(shù)組形式傳入
    datas=[],# 存放的資源文件
    hiddenimports=[],# pyinstaller解析模塊時(shí)可能會(huì)遺漏某些模塊
    hookspath=[],
    hooksconfig={},
    runtime_hooks=[],
    excludes=[],
    win_no_prefer_redirects=False,
    win_private_assemblies=False,
    cipher=block_cipher,
    noarchive=False,
)
pyz = PYZ(a.pure, a.zipped_data, cipher=block_cipher)
exe = EXE(
    pyz,
    a.scripts,
    a.binaries,
    a.zipfiles,
    a.datas,
    [],
    name='修改EXE的文件名',
    debug=False,
    bootloader_ignore_signals=False,
    strip=False,
    upx=True,
    upx_exclude=[],
    runtime_tmpdir=None,
    console=True,
    disable_windowed_traceback=False,
    argv_emulation=False,
    target_arch=None,
    codesign_identity=None,
    entitlements_file=None,
)

5.拓展

對(duì)提到的五種打包庫(kù)進(jìn)行以下簡(jiǎn)單介紹:

  1. py2exe:
    • 跨平臺(tái)支持有限,主要用于將Python腳本打包為Windows可執(zhí)行文件
    • 簡(jiǎn)單易用,配置相對(duì)簡(jiǎn)單,適合簡(jiǎn)單的打包需求
    • 可以將Python解釋器和依賴項(xiàng)打包到單個(gè)可執(zhí)行文件中
  2. PyInstaller:
    • 跨平臺(tái)支持廣泛,可以生成Windows、macOS和Linux等系統(tǒng)上的可執(zhí)行文件
    • 自動(dòng)化打包,能夠自動(dòng)檢測(cè)和包含所有依賴項(xiàng)
    • 支持多種GUI框架,如Tkinter、PyQt、wxPython等
    • 可以生成獨(dú)立的可執(zhí)行文件,無(wú)需安裝Python解釋器
  3. cx_Freeze:
    • 跨平臺(tái)支持,可以生成Windows、macOS和Linux等系統(tǒng)上的可執(zhí)行文件
    • 配置靈活,可以根據(jù)需求進(jìn)行定制
    • 支持多種GUI框架和第三方庫(kù)
    • 生成的可執(zhí)行文件較小,具有較小的內(nèi)存占用
  4. Nuitka:
    • 將Python代碼編譯為機(jī)器碼,提高執(zhí)行效率
    • 生成的可執(zhí)行文件性能較高,執(zhí)行速度比解釋執(zhí)行的Python代碼更快
    • 與許多第三方庫(kù)和C擴(kuò)展兼容
    • 跨平臺(tái)支持廣泛,可以生成Windows、macOS和Linux等系統(tǒng)上的可執(zhí)行文件
  5. Pyarmor:
    • 用于保護(hù)Python代碼,提供加密和混淆功能,以防止未經(jīng)授權(quán)的訪問(wèn)和復(fù)制
    • 支持對(duì)Python腳本進(jìn)行防調(diào)試和防反向工程處理
    • 配置簡(jiǎn)單,可以與其他打包工具結(jié)合使用
    • 跨平臺(tái)支持,可以在不同系統(tǒng)上使用
      這些工具在Python打包和分發(fā)方面都有其獨(dú)特的特點(diǎn)和適用場(chǎng)景,選擇合適的工具取決于我們的具體需求,例如目標(biāo)平臺(tái)、代碼保護(hù)需求、對(duì)第三方庫(kù)的支持程度以及打包后的可執(zhí)行文件的性能要求等。

到此這篇關(guān)于最簡(jiǎn)單的pyinstaller打包exe方式小結(jié)的文章就介紹到這了,更多相關(guān)pyinstaller打包exe內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家! 

相關(guān)文章

  • Python編程itertools模塊處理可迭代集合相關(guān)函數(shù)

    Python編程itertools模塊處理可迭代集合相關(guān)函數(shù)

    本篇博客將為你介紹Python函數(shù)式編程itertools模塊中處理可迭代集合的相關(guān)函數(shù),有需要的朋友可以借鑒參考下,希望可以有所幫助
    2021-09-09
  • 5行Python代碼實(shí)現(xiàn)一鍵批量扣圖

    5行Python代碼實(shí)現(xiàn)一鍵批量扣圖

    在日常生活或者工作中,經(jīng)常會(huì)遇到想將某張照片中的人物摳出來(lái),本文就介紹了Python代碼實(shí)現(xiàn)一鍵批量扣圖,感興趣的可以了解一下
    2021-06-06
  • Python?time三種時(shí)間轉(zhuǎn)換小結(jié)

    Python?time三種時(shí)間轉(zhuǎn)換小結(jié)

    本文主要介紹了Python?time三種時(shí)間轉(zhuǎn)換小結(jié),主要包括時(shí)間戳,結(jié)構(gòu)化時(shí)間,字符串時(shí)間,文中根據(jù)實(shí)例編碼詳細(xì)介紹的十分詳盡,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • Python實(shí)現(xiàn)從Markdown到PDF的轉(zhuǎn)換的方法

    Python實(shí)現(xiàn)從Markdown到PDF的轉(zhuǎn)換的方法

    Markdown,以其簡(jiǎn)潔的語(yǔ)法和易于閱讀的特性,成為了許多作家、開(kāi)發(fā)者和學(xué)生記錄思想、編寫(xiě)教程或撰寫(xiě)報(bào)告的首選格式,然而,在分享或打印這些文檔時(shí),Markdown的純文本形式可能無(wú)法滿足對(duì)版式和布局的專業(yè)需求,本文將介紹如何用Python代碼輕松實(shí)現(xiàn)從Markdown到PDF的轉(zhuǎn)換
    2024-07-07
  • Python 中使用 Selenium 單擊網(wǎng)頁(yè)按鈕功能

    Python 中使用 Selenium 單擊網(wǎng)頁(yè)按鈕功能

    Selenium是一個(gè)用于測(cè)試網(wǎng)站的自動(dòng)化測(cè)試工具,支持各種瀏覽器包括Chrome、Firefox、Safari等主流界面瀏覽器,同時(shí)也支持phantomJS無(wú)界面瀏覽器,本篇文章將介紹如何在 Python 中使用 selenium 單擊網(wǎng)頁(yè)上的按鈕,感興趣的朋友一起看看吧
    2023-11-11
  • Python中re.compile函數(shù)的使用方法

    Python中re.compile函數(shù)的使用方法

    這篇文章主要介紹在python的re模塊中怎樣應(yīng)用正則表達(dá)式,文中有相關(guān)的代碼示例,具有一定的參考價(jià)值,需要的朋友可以參考下
    2023-06-06
  • 使用Python開(kāi)發(fā)一個(gè)簡(jiǎn)單的本地圖片服務(wù)器

    使用Python開(kāi)發(fā)一個(gè)簡(jiǎn)單的本地圖片服務(wù)器

    本文介紹了如何結(jié)合wxPython構(gòu)建的圖形用戶界面GUI和Python內(nèi)建的 Web服務(wù)器功能,在本地網(wǎng)絡(luò)中搭建一個(gè)私人的,即開(kāi)即用的網(wǎng)頁(yè)相冊(cè),文中的示例代碼講解詳細(xì),感興趣的小伙伴可以嘗試一下
    2025-04-04
  • pymongo中g(shù)roup by的操作方法教程

    pymongo中g(shù)roup by的操作方法教程

    這篇文章主要給大家介紹了關(guān)于pymongo中g(shù)roup by的操作方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用pymongo具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-03-03
  • python展開(kāi)嵌套列表的多種方法

    python展開(kāi)嵌套列表的多種方法

    本文主要介紹了python展開(kāi)嵌套列表的多種方法,包括for循環(huán)、列表推導(dǎo)式和sum函數(shù)三種方法,具有一定的參考價(jià)值,感興趣的可以了解一下
    2025-03-03
  • pytest多進(jìn)程或多線程執(zhí)行測(cè)試實(shí)例

    pytest多進(jìn)程或多線程執(zhí)行測(cè)試實(shí)例

    這篇文章介紹了pytest多進(jìn)程或多線程執(zhí)行測(cè)試的實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-07-07

最新評(píng)論

丹凤县| 海口市| 阳谷县| 盐城市| 太康县| 株洲市| 黔西县| 边坝县| 岚皋县| 鲜城| 富锦市| 浦江县| 友谊县| 五寨县| 富锦市| 肥西县| 贵溪市| 岱山县| 黎川县| 邢台县| 武冈市| 沅陵县| 县级市| 安陆市| 彰化县| 赤水市| 密云县| 浦江县| 新绛县| 中方县| 石门县| 凌海市| 宜昌市| 新昌县| 彰武县| 册亨县| 鹰潭市| 天津市| 梅河口市| 阿坝| 星座|