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

使用pyinstaller打包py文件的實(shí)現(xiàn)步驟

 更新時(shí)間:2025年03月19日 08:30:43   作者:無妄無望  
PyInstaller是一個(gè)用于將Python腳本打包成獨(dú)立可執(zhí)行文件的工具,本文主要介紹了使用pyinstaller打包py文件,具有一定的參考價(jià)值,感興趣的可以了解一下

1、是什么

PyInstaller 是一個(gè)用于將 Python 腳本打包成獨(dú)立可執(zhí)行文件的工具。它支持跨平臺(tái)打包,可以在 Windows、macOS 和 Linux 系統(tǒng)上使用。PyInstaller 會(huì)自動(dòng)處理腳本的依賴項(xiàng),并將它們打包到一個(gè)可執(zhí)行文件或一個(gè)包含所有文件的目錄中。

功能特點(diǎn)

  • 跨平臺(tái)支持:可以在 Windows、macOS 和 Linux 系統(tǒng)上使用。
  • 自動(dòng)處理依賴項(xiàng):自動(dòng)分析腳本的依賴項(xiàng),并將它們打包到可執(zhí)行文件中。
  • 生成單個(gè)可執(zhí)行文件:可以將所有依賴項(xiàng)打包到一個(gè)單獨(dú)的可執(zhí)行文件中,方便分發(fā)。
  • 支持多種打包選項(xiàng):可以指定窗口化應(yīng)用、隱藏控制臺(tái)窗口等選項(xiàng)。

2.怎么用 

2.1基本用法

1. 生成可執(zhí)行文件:

在終端或命令提示符中導(dǎo)航到包含 Python 腳本的目錄,然后運(yùn)行以下命令:

pyinstaller script_name.py

這將生成一個(gè) `dist` 目錄,其中包含可執(zhí)行文件。

2. 生成單個(gè)可執(zhí)行文件:

如果想將所有依賴項(xiàng)打包到一個(gè)單獨(dú)的可執(zhí)行文件中,可以使用 `-F` 或 `--onefile` 選項(xiàng):

pyinstaller -F script_name.py

3. 指定輸出目錄:

如果想指定輸出目錄,可以使用 `-o` 或 `--distpath` 選項(xiàng):

 pyinstaller -F -o output_directory script_name.py

4. 隱藏控制臺(tái)窗口:

如果打包的是 GUI 應(yīng)用程序,并且不想顯示控制臺(tái)窗口,可以使用 `-w` 或 `--windowed` 選項(xiàng):

pyinstaller -F -w script_name.py

2.2高級(jí)選項(xiàng)

- 添加圖標(biāo):可以使用 `--icon` 選項(xiàng)為可執(zhí)行文件添加圖標(biāo):

pyinstaller -F --icon=icon.ico script_name.py

- 指定臨時(shí)文件目錄:可以使用 `--workpath` 選項(xiàng)指定臨時(shí)文件目錄:

pyinstaller -F --workpath=build_directory script_name.py

- 排除不需要的模塊:可以使用 `--exclude-module` 選項(xiàng)排除不需要的模塊:

pyinstaller -F --exclude-module=module_name script_name.py

3、示例

3.1 單個(gè)文件打包

(1)打包命令:

在終端,main.py文件所在文件夾和環(huán)境

pyinstaller -F main.py

打包成功

(2)修改main.spec配置文件

中括號(hào)中是你的py文件,pathex中是你文件躲在的絕對(duì)路徑

(3)執(zhí)行main.spec配置文件

pyinstaller main.spec

 3.2 多個(gè)文件的示例

(1)與單個(gè)文件相同

(2)修改spec配置文件

① 所有需要的py文件和絕對(duì)路徑

②  所有資源存在data  
data是一個(gè)列表,數(shù)據(jù)存放以二元組形式存放,前面的是數(shù)據(jù)名稱,后面的是相對(duì)于predict_tinajin.py當(dāng)前目錄的路徑。  

③  最好在exe文件所在目錄打開終端運(yùn)行exe文件,這樣即使報(bào)錯(cuò)也不會(huì)一閃而過。一般是報(bào)錯(cuò)或者exe執(zhí)行完終端界面就會(huì)消失,在所在路徑的地方運(yùn)行就不會(huì)

4、關(guān)于spec更詳細(xì)的信息

當(dāng)然,以下是對(duì) .spec 文件中給出的 PyInstaller 配置的逐行解釋:

a = Analysis(
    ['predict_tianjin.py'],  # 1
    pathex=[],               # 2
    binaries=[],             # 3
    datas=[],                # 4
    hiddenimports=[],        # 5
    hookspath=[],            # 6
    hooksconfig={},          # 7
    runtime_hooks=[],        # 8
    excludes=[],             # 9
    noarchive=False,         # 10
    optimize=0,              # 11
)
pyz = PYZ(a.pure)  # 12
exe = EXE(
    pyz,                     # 13
    a.scripts,               # 14
    a.binaries,              # 15
    a.datas,                 # 16
    [],                      # 17
    name='predict_tianjin',  # 18
    debug=False,             # 19
    bootloader_ignore_signals=False,  # 20
    strip=False,             # 21
    upx=True,                # 22
    upx_exclude=[],          # 23
    runtime_tmpdir=None,     # 24
    console=True,            # 25
    disable_windowed_traceback=False,  # 26
    argv_emulation=False,    # 27
    target_arch=None,        # 28
    codesign_identity=None,  # 29
    entitlements_file=None,  # 30
)

解釋:

['predict_tianjin.py']: 這是主腳本文件的路徑列表,PyInstaller 將從這個(gè)腳本開始分析依賴項(xiàng)。

pathex=[]: 這是額外的路徑列表,PyInstaller 將在此列表中的路徑中搜索模塊。

binaries=[]: 這是包含非 Python 二進(jìn)制文件的元組列表,格式為 (src, dest),其中 src 是打包文件的路徑,dest 是打包文件在可執(zhí)行文件中的路徑。

datas=[]: 這是包含數(shù)據(jù)文件的元組列表,格式與 binaries 相同。

hiddenimports=[]: 這是需要隱式導(dǎo)入的模塊列表,這些模塊可能沒有在腳本中直接導(dǎo)入,但需要包含在打包中。

hookspath=[]: 這是包含 PyInstaller 鉤子文件的路徑列表,這些鉤子文件用于處理特定模塊的打包需求。

hooksconfig={}: 這是鉤子配置的字典,用于傳遞配置選項(xiàng)給鉤子。

runtime_hooks=[]: 這是運(yùn)行時(shí)鉤子腳本的路徑列表,這些腳本將在程序開始執(zhí)行之前運(yùn)行。

excludes=[]: 這是將被排除在打包之外的模塊列表。

noarchive=False: 如果設(shè)置為 True,則不會(huì)創(chuàng)建 Python 庫歸檔文件,而是將它們作為單獨(dú)的文件包含。

optimize=0: 設(shè)置 Python 優(yōu)化級(jí)別,0 表示不優(yōu)化,1 表示去除斷言,2 表示優(yōu)化字節(jié)碼。

pyz = PYZ(a.pure): 創(chuàng)建一個(gè) PYZ 對(duì)象,這是一個(gè)包含所有純 Python 代碼(不包含二進(jìn)制擴(kuò)展)的壓縮包。

13-30. exe = EXE(...): 創(chuàng)建一個(gè)可執(zhí)行文件對(duì)象,包含以下參數(shù):

- pyz: 上一步創(chuàng)建的 PYZ 對(duì)象。

- a.scripts: 由 Analysis 對(duì)象確定的腳本列表。

- a.binaries: 由 Analysis 對(duì)象確定的二進(jìn)制文件列表。

- a.datas: 由 Analysis 對(duì)象確定的數(shù)據(jù)文件列表。

- []: 不明參數(shù),通常為空列表。

- name='predict_tianjin': 生成的可執(zhí)行文件的基本名稱。

- debug=False: 如果設(shè)置為 True,則生成調(diào)試信息。

- bootloader_ignore_signals=False: 控制是否讓引導(dǎo)加載程序忽略信號(hào)。

- strip=False: 如果設(shè)置為 True,則從二進(jìn)制文件中移除符號(hào)信息。

- upx=True: 如果設(shè)置為 True,則使用 UPX 壓縮可執(zhí)行文件。

- upx_exclude=[]: 不使用 UPX 壓縮的文件列表。

- runtime_tmpdir=None: 運(yùn)行時(shí)的臨時(shí)目錄。

- console=True: 如果設(shè)置為 True,則創(chuàng)建控制臺(tái)應(yīng)用程序。

- disable_windowed_traceback=False: 控制是否禁用窗口化的回溯。

- argv_emulation=False: 控制是否啟用 argv 模擬。

- target_arch=None: 指定目標(biāo)架構(gòu),例如 'x86' 或 'x64'。

- codesign_identity=None: 用于代碼簽名的標(biāo)識(shí)。

到此這篇關(guān)于使用pyinstaller打包py文件的實(shí)現(xiàn)步驟的文章就介紹到這了,更多相關(guān)pyinstaller打包py內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家! 

相關(guān)文章

  • 詳解Python如何使用PyBuilder從零開始構(gòu)建項(xiàng)目

    詳解Python如何使用PyBuilder從零開始構(gòu)建項(xiàng)目

    PyBuilder是一個(gè)用于構(gòu)建Python項(xiàng)目的工具,它提供了一種簡(jiǎn)單而強(qiáng)大的方式來管理項(xiàng)目的依賴、運(yùn)行測(cè)試、生成文檔等任務(wù),下面就跟隨小編一起來學(xué)習(xí)一下如何使用PyBuilder構(gòu)建項(xiàng)目吧
    2024-03-03
  • Python中MYSQLdb出現(xiàn)亂碼的解決方法

    Python中MYSQLdb出現(xiàn)亂碼的解決方法

    這篇文章主要介紹了Python中MYSQLdb出現(xiàn)亂碼的解決方法,是Python操作MySQL數(shù)據(jù)庫程序設(shè)計(jì)中非常常見的問題,需要的朋友可以參考下
    2014-10-10
  • Pandas快速合并多張excel表格的兩種方法

    Pandas快速合并多張excel表格的兩種方法

    最近學(xué)習(xí)了python遍歷目錄,下面這篇文章主要給大家介紹了關(guān)于Pandas快速合并多張excel表格的兩種方法,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-01-01
  • Python中Json使用示例詳解

    Python中Json使用示例詳解

    這篇文章主要介紹了Python中Json使用,主要介紹一下python?中?json的使用?如何把dict轉(zhuǎn)成json?、object?轉(zhuǎn)成json?、以及json轉(zhuǎn)成對(duì)象,需要的朋友可以參考下
    2022-07-07
  • 構(gòu)建高效的python requests長(zhǎng)連接池詳解

    構(gòu)建高效的python requests長(zhǎng)連接池詳解

    這篇文章主要介紹了構(gòu)建高效的python requests長(zhǎng)連接池詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-05-05
  • Python 實(shí)現(xiàn)一個(gè)簡(jiǎn)單的web服務(wù)器

    Python 實(shí)現(xiàn)一個(gè)簡(jiǎn)單的web服務(wù)器

    這篇文章主要介紹了Python 實(shí)現(xiàn)一個(gè)簡(jiǎn)單的web服務(wù)器的方法,幫助大家更好的理解和學(xué)習(xí)python,感興趣的朋友可以了解下
    2021-01-01
  • django第一個(gè)項(xiàng)目127.0.0.1:8000不能訪問的解決方案詳析

    django第一個(gè)項(xiàng)目127.0.0.1:8000不能訪問的解決方案詳析

    django項(xiàng)目服務(wù)啟動(dòng)后無法通過127.0.0.1訪問,下面這篇文章主要給大家介紹了關(guān)于django第一個(gè)項(xiàng)目127.0.0.1:8000不能訪問的解決方案,需要的朋友可以參考下
    2022-10-10
  • Python通過Ollama調(diào)用大語言模型

    Python通過Ollama調(diào)用大語言模型

    這篇文章主要為大家詳細(xì)介紹了如何使用Python通過Ollama調(diào)用大語言模型,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2026-03-03
  • python配置文件寫入過程詳解

    python配置文件寫入過程詳解

    這篇文章主要介紹了python配置文件寫入過程詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-10-10
  • Python2.X/Python3.X中urllib庫區(qū)別講解

    Python2.X/Python3.X中urllib庫區(qū)別講解

    本篇文章通過對(duì)比給大家詳細(xì)講解了在Python2和Python3中urllib庫區(qū)別以及用法講解,有需要的朋友跟著學(xué)習(xí)下吧。
    2017-12-12

最新評(píng)論

运城市| 永清县| 崇阳县| 公主岭市| 冀州市| 旅游| 故城县| 舒兰市| 西青区| 东乡| 鄂州市| 游戏| 津南区| 长岭县| 额济纳旗| 武城县| 迁西县| 老河口市| 普陀区| 大兴区| 安图县| 思茅市| 通渭县| 偃师市| 阳泉市| 漳州市| 怀集县| 酉阳| 金沙县| 文山县| 阿巴嘎旗| 万全县| 东乡族自治县| 津市市| 新竹县| 板桥市| 延寿县| 新丰县| 巴塘县| 项城市| 龙江县|