欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

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

一.PyInstaller1

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

1.安裝:

pip install pyinstaller

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

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

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

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

3.Flask項目打包為exe

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

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

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

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

excludes中是無需導入的第三方庫,直接寫第三庫的名稱即可
'''


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

4.開始打包

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

pyinstaller main.spec

二.cx_Freeze

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

1.安裝: 

cxfreeze your_script.py --target-dir dist

2. 使用:

cxfreeze your_script.py --target-dir dist

三.Py2exe

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

1.安裝:

pip install py2exe

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

from distutils.core import setup
import py2exe

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

 3.然后運行:

python setup.py py2exe

 打包后的文件會生成在 dist 目錄下。

四.Nuitka

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

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  # 展示打包詳情的控制臺輸出
 --include-package=requests  # 將requests包打包進exe
 --mingw64  # 指定編譯器
 --plugin-enable=requests  # 導入第三方包
 -o wenshu.exe # 指定exe名字
 --output-dir=  # 指定打包后的路徑,默認當前路徑
 --windows-disable-console  # 去掉黑窗口
 --windows-icon=  # 指定圖標
 
 nuitka  --plugin-list  # 查看可用的插件

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

相關(guān)文章

最新評論