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

Python打包成exe常用的四種方法小結(jié)

 更新時(shí)間:2025年09月28日 10:41:52   作者:python阿遠(yuǎn)  
本文主要介紹了Python打包成exe常用的四種方法,包括PyInstaller、cx_Freeze、Py2exe、Nuitka,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

將Python腳本打包成可執(zhí)行文件(.exe)是分發(fā)Python應(yīng)用程序的常見方式。以下是幾種常用的方法:

一.PyInstaller1

PyInstaller 是最常用的工具之一,支持跨平臺(tái)(Windows、macOS、Linux)。它可以將Python腳本打包成單個(gè)可執(zhí)行文件,并且支持打包依賴項(xiàng)。

1.安裝:

pip install pyinstaller

2. PyInstaller常用參數(shù)下面是pyinstaller的常用參數(shù):

  1. --name : 指定可執(zhí)行文件名稱。
  2. --specpath: 指定spec文件的生成目錄,默認(rèn)為當(dāng)前目錄。
  3. -F, --onefile: 將整個(gè)應(yīng)用程序打包到單個(gè)可執(zhí)行文件中。
  4. -D, --onedir: 生成一個(gè)目錄,包含多個(gè)文件。
  5. --add-data 、 --add-binary: 在構(gòu)建中插入額外的數(shù)據(jù)或二進(jìn)制文件,可用于綁定配置文件、示例或其他非代碼數(shù)據(jù)。
  6. --exclude-module: 排除某些模塊。
  7. -d, --debug: 提供debug輸出。
  8. -w, --windowed, --noconsole: 關(guān)閉控制臺(tái)窗口(僅對(duì)Windows有效)。
  9. -c, --nowindowed, --console: 使用命令行窗口(僅對(duì)Windows有效)。
  10. -i: 設(shè)置應(yīng)用圖標(biāo)。

在項(xiàng)目根目錄,打開命令行窗口執(zhí)行命令:pyinstaller 項(xiàng)目入口函數(shù) 即可進(jìn)行打包,主要生成以下三個(gè)內(nèi)容:

  1. *.spec 文件
  2. build/ 文件夾:用于構(gòu)建可執(zhí)行文件
  3. dist/ 文件夾:包含應(yīng)用程序的所有依賴項(xiàng)和可執(zhí)行文件

3.Flask項(xiàng)目打包為exe

在項(xiàng)目根目錄執(zhí)行如下命令,創(chuàng)建my_app.spec文件,內(nèi)容如下:main.py為python項(xiàng)目入口文件,設(shè)置顯示控制臺(tái):

$ pyi-makespec -F -c main.py 
# -*- mode: python ; coding: utf-8 -*-

'''
在打包導(dǎo)入某些模塊時(shí),常會(huì)出現(xiàn)"RecursionError: maximum recursion depth exceeded"的錯(cuò)誤,
這可能是打包時(shí)出現(xiàn)了大量的遞歸超出了python預(yù)設(shè)的遞歸深度。因此需要在spec文件上添加遞歸深度的設(shè)置,設(shè)置一個(gè)足夠大的值來(lái)保證打包的進(jìn)行,即
'''
import sys
sys.setrecursionlimit(6000)
block_cipher = None
'''
需要修改pathex的內(nèi)容,寫上所有py文件,和入口文件在一個(gè)目錄的不用在前面加地址,否則要加絕對(duì)地址

datas中是資源文件夾的所處位置,寫法類似于python元組
第一個(gè)參數(shù):Python中的資源文件等非py類型文件的路徑
第二個(gè)參數(shù):打包后路徑,要和路徑中的文件夾名稱相同

excludes中是無(wú)需導(dǎo)入的第三方庫(kù),直接寫第三庫(kù)的名稱即可
'''


a = Analysis(
    ['main.py'], # flask入口
    pathex=['login.py','tool.py','ExcelMySQLToolModify.py'],
    binaries=[],    
    datas=[("E:/**/templates","/templates"),("E:/**/static","/static")],# 將資源的絕對(duì)路徑轉(zhuǎn)換為你打包的exe的相對(duì)路徑
    hiddenimports=[],
    hookspath=[],
    hooksconfig={},
    runtime_hooks=[],
    excludes=['opencv-python','beautifulsoup4'],   #第三庫(kù)的名稱
    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='my_flask_app', #名字自己定
    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,
    icon='D:\\images\\logo.ico', # 程序圖標(biāo),具體路徑
)

4.開始打包

運(yùn)行以下命令來(lái)使用PyInstaller根據(jù)my_app.spec文件打包flask應(yīng)用程序:

pyinstaller main.spec

二.cx_Freeze

cx_Freeze 是另一個(gè)流行的打包工具,支持跨平臺(tái)。它可以將Python腳本打包成可執(zhí)行文件,并且支持打包依賴項(xiàng)。

1.安裝: 

cxfreeze your_script.py --target-dir dist

2. 使用:

cxfreeze your_script.py --target-dir dist

三.Py2exe

Py2exe 是一個(gè)專門用于將Python腳本打包成Windows可執(zhí)行文件的工具。

1.安裝:

pip install py2exe

2.使用:創(chuàng)建一個(gè) setup.py 文件:

from distutils.core import setup
import py2exe

setup(console=['your_script.py'])

 3.然后運(yùn)行:

python setup.py py2exe

 打包后的文件會(huì)生成在 dist 目錄下。

四.Nuitka

Nuitka 是一個(gè)Python到C++編譯器,它可以將Python腳本編譯成可執(zhí)行文件。與上述工具不同,Nuitka 會(huì)將Python代碼編譯成C++代碼,然后再編譯成可執(zhí)行文件,因此性能可能會(huì)有所提升。

1.安裝:

pip install nuitka

2.使用:

nuitka --standalone --onefile your_script.py
 nuitka --follow-imports --show-progress --mingw64 main.py
 --follow-imports  # 打包import的文件
 --standalone  # 脫離python環(huán)境
 --show-progress  # 展示打包詳情的控制臺(tái)輸出
 --include-package=requests  # 將requests包打包進(jìn)exe
 --mingw64  # 指定編譯器
 --plugin-enable=requests  # 導(dǎo)入第三方包
 -o wenshu.exe # 指定exe名字
 --output-dir=  # 指定打包后的路徑,默認(rèn)當(dāng)前路徑
 --windows-disable-console  # 去掉黑窗口
 --windows-icon=  # 指定圖標(biāo)
 
 nuitka  --plugin-list  # 查看可用的插件

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

相關(guān)文章

  • python networkx 根據(jù)圖的權(quán)重畫圖實(shí)現(xiàn)

    python networkx 根據(jù)圖的權(quán)重畫圖實(shí)現(xiàn)

    這篇文章主要介紹了python networkx 根據(jù)圖的權(quán)重畫圖實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07
  • 分享4個(gè)Python中的非常好用的自動(dòng)化腳本

    分享4個(gè)Python中的非常好用的自動(dòng)化腳本

    這篇文章為大家準(zhǔn)備了4個(gè)很棒的Python自動(dòng)化腳本,可以解決這些問(wèn)題。文中的示例代碼講解詳細(xì),具有一定的借鑒價(jià)值,需要的可以參考一下
    2022-11-11
  • ipad上運(yùn)行python的方法步驟

    ipad上運(yùn)行python的方法步驟

    在本篇文章里小編給大家分享的是關(guān)于ipad上運(yùn)行python的方法步驟以及相關(guān)知識(shí)點(diǎn),有需要的朋友們學(xué)習(xí)下。
    2019-10-10
  • pyQT5 實(shí)現(xiàn)窗體之間傳值的示例

    pyQT5 實(shí)現(xiàn)窗體之間傳值的示例

    今天小編就為大家分享一篇pyQT5 實(shí)現(xiàn)窗體之間傳值的示例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-06-06
  • 使用Python進(jìn)行中文繁簡(jiǎn)轉(zhuǎn)換的實(shí)現(xiàn)代碼

    使用Python進(jìn)行中文繁簡(jiǎn)轉(zhuǎn)換的實(shí)現(xiàn)代碼

    這篇文章主要介紹了使用Python進(jìn)行中文繁簡(jiǎn)轉(zhuǎn)換的實(shí)現(xiàn)代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-10-10
  • Gradio機(jī)器學(xué)習(xí)模型快速部署工具接口狀態(tài)

    Gradio機(jī)器學(xué)習(xí)模型快速部署工具接口狀態(tài)

    這篇文章主要為大家介紹了Gradio機(jī)器學(xué)習(xí)模型快速部署工具接口狀態(tài)的原文翻譯,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-04-04
  • Django Admin設(shè)置應(yīng)用程序及模型順序方法詳解

    Django Admin設(shè)置應(yīng)用程序及模型順序方法詳解

    這篇文章主要介紹了Django Admin設(shè)置應(yīng)用程序及模型順序方法詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-04-04
  • Python能干什么、Python主要應(yīng)用于哪些方面

    Python能干什么、Python主要應(yīng)用于哪些方面

    無(wú)論是從入門級(jí)選手到專業(yè)級(jí)選手都在做的爬蟲,還是Web程序開發(fā)、桌面程序開發(fā)還是科學(xué)計(jì)算、圖像處理, Python都可以勝任。Python為我們提供了非常完善的基礎(chǔ)代碼庫(kù),覆蓋了網(wǎng)絡(luò)、文件、GUI、 數(shù)據(jù)庫(kù)、文本等大量?jī)?nèi)容。用Python開發(fā),許多功能不必從零編寫
    2023-06-06
  • Python多線程的使用詳情

    Python多線程的使用詳情

    這篇文章主要介紹了Python多線程的使用詳情,線程之間執(zhí)行是無(wú)序的,cpu調(diào)度哪個(gè)線程就執(zhí)行哪個(gè)線程,下文相關(guān)介紹需要的小伙伴可以參考一下
    2022-04-04
  • python實(shí)現(xiàn)skywalking的trace模塊過(guò)濾和報(bào)警(實(shí)例代碼)

    python實(shí)現(xiàn)skywalking的trace模塊過(guò)濾和報(bào)警(實(shí)例代碼)

    Skywalking可以對(duì)鏈路追蹤到數(shù)據(jù)進(jìn)行告警規(guī)則配置,例如響應(yīng)時(shí)間、響應(yīng)百分比等。發(fā)送警告通過(guò)調(diào)用webhook接口完成。webhook接口用戶可以自定義。本文給大家介紹python實(shí)現(xiàn)skywalking的trace模塊過(guò)濾和報(bào)警,感興趣的朋友跟隨小編一起看看吧
    2021-12-12

最新評(píng)論

红安县| 吉木萨尔县| 东乌珠穆沁旗| 行唐县| 和田县| 寿阳县| 青岛市| 临夏县| 阳泉市| 曲沃县| 临猗县| 通榆县| 安福县| 新安县| 洛宁县| 鄄城县| 团风县| 巴中市| 通海县| 托克托县| 洞头县| 桦甸市| 洪洞县| 女性| 惠水县| 通渭县| 田东县| 宝应县| 汾西县| 皋兰县| 昌宁县| 和平县| 徐州市| 库车县| 郁南县| 安图县| 宜君县| 福建省| 保山市| 朔州市| 虞城县|