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

pyinstaller的介紹與使用超詳細講解

 更新時間:2023年11月11日 15:05:20   作者:欣源科技2023  
PyInstaller是一個Python庫,可以將Python應用程序轉(zhuǎn)換為獨立的可執(zhí)行文件,下面這篇文章主要給大家介紹了關(guān)于pyinstaller的介紹與使用的相關(guān)資料,文中通過代碼介紹的非常詳細,需要的朋友可以參考下

一、 概述

1、 簡介

pyinstaller是一個第三方庫,它能夠在Windows、Linux、 Mac OS X 等操作系統(tǒng)下將 Python 源文件打包,通過對源文件打包, Python 程序可以在沒有安裝 Python 的環(huán)境中運行,也可以作為一個 獨立文件方便傳遞和管理。

PyInstaller支持Python 2.7和Python 3.3+??梢栽赪indows、Mac OS X和Linux上使用,但是并不是跨平臺的,而是說你要是希望打包成.exe文件,需要在Windows系統(tǒng)上運行PyInstaller進行打包工作;打包成mac app,需要在Mac OS上使用。

2、 安裝與更新

安裝:pip install pyinstaller

更新:pip install --upgrade pyinstaller

注意:
1.PyInstaller 庫會自動將 PyInstaller 命令安裝到 Python 解釋器 目錄中,與 pip 或 pip3 命令路徑相同,因此可以直接使用。
2.Windows上運行PyInstaller還需要PyWin32或者pypiwin32,其中pypiwin32在你安裝PyInstaller的時候會自動安裝。

二、 基本使用

1、 使用示例

語法:pyinstaller 選項 python源文件路徑

不管這個 Python 應用是單文件的應用,還是多文件的應用,只要在使用 pyinstaller 命令時編譯作為程序入口的 Python 程序即可。

PyInstaller工具是跨平臺的,它既可以在 Windows平臺上使用,也可以在 Mac OS X 平臺上運行。在不同的平臺上使用 PyInstaller 工具的方法是一樣的,它們支持的選項也是一樣的。

如,在python源文件的目錄中打開終端,在進行輸入

圖片

成功后會出現(xiàn)

圖片

2、 常用選項

圖片

上表列出的只是 pyinstaller 模塊所支持的常用選項,如果需要了解 Pyinstaller 選項的詳細信息,則可通過 pyinstaller -h 來查看

三、 多文件打包

1、 概念

這里是使用Windows進行打包的,當然其他平臺的打包參數(shù)也是類似,可以去官網(wǎng)學習。

這里,我們需要學習,如何使用pyinstaller將多個py文件打包成一個EXE文件,供我們使用:

首先,我們需要學習,什么是多文件?

多文件就是有一個主文件,主文件依賴其余的py文件才能運行,通過import連接

我們需要使用的是.spec文件

首先,我們創(chuàng)建一個目錄結(jié)構(gòu):

圖片

2、 規(guī)范文件

然后,學習一個命令:

pyi-makespec main.py  # 運行 pyinstaller ,以main.py為主文件,生成一個spec文件,作為一個標準

此規(guī)范文件也可以自己編寫,同時,生成規(guī)范文件時,直接打包的那些參數(shù)都可以使用

運行后,其在運行目錄下生成一個main.spec文件,其內(nèi)容為:

# -*- mode: python ; coding: utf-8 -*-
block_cipher = None  #設置 加密,需要安裝tinyaes第三方庫,最多16位字符,此處在使用--key= 會有變化
a = Analysis(
    ['main.py'],  # 運行的所有py文件,包括依賴的py文件 
    pathex=[],  # 搜索導入的路徑列表(此列表為項目絕對路徑),包括選項給出的路徑--paths,項目需要從什么地方導入自定義庫
    binaries=[],  # 腳本需要的非python模塊,包括--add-binary選項給出的名稱,二進制數(shù)據(jù)
    datas=[],  # 應用程序中包含的非二進制文件,包括--add-data選項給出的名稱,項目需要用到什么數(shù)據(jù),比如圖片,視頻等。里面格式為tuple,第一個參數(shù)是文件路徑,第二個是打包后所在的路徑,其為一個元組:('image/*.png','data/image')
    hiddenimports=[],   # 假如打包后打開exe顯示module not found,就要把該庫添加到hiddenimports里面了
    hookspath=[],  
    hooksconfig={},  # 掛鉤配置選項由一個字典組成
    runtime_hooks=[],  
    excludes=[],  # 假如你用的python有很多庫,但是你不需要用到某個,那么就把它添加到里面去,可以壓縮文件大小
    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,  # 打包成EXE的腳本文件
    # a.binaries,  # 如果是單文件模式,則需要添加;多文件也可以添加
   	# a.zipfiles,
    # a.datas,
    [],
    exclude_binaries=True,  # 是否排除二進制文件,為True時,為排除二進制的文件,當文件交大時包含二進制文件運行較快,如果是單文件,則沒有這個選項
    name='main',  # 打包程序的名字
    debug=False,  # 是否啟用調(diào)試功能
    bootloader_ignore_signals=False,
    # runtime_tmpdir=None,  # 生成單文件時需要這個參數(shù),定義運行時的臨時文件夾
    strip=False,
    upx=True,  # 打包的時候進行壓縮,F(xiàn)alse表示不壓縮;要用到一個壓縮程序UPX,用于壓縮文件,需要單獨下載
    console=True,  # 打包后的可執(zhí)行文件雙擊運行時屏幕會出現(xiàn)一個cmd窗口,不影響原程序運行,等于是是否加-w參數(shù)
    disable_windowed_traceback=False,  
    argv_emulation=False,
    target_arch=None,
    codesign_identity=None,
    entitlements_file=None,
    """添加選項,初始化時沒有的"""
    icon="",  # 指定應用程序的圖標,傳入路徑,可以相對路徑
)
coll = COLLECT(
    """
    如果是單文件模式,不需要這個COLLECT類,同時需要將:
        a.binaries,
    	a.zipfiles,
    	a.datas,
    這些數(shù)據(jù)文件添加到EXE中
    """
    exe,
    a.binaries,
    a.zipfiles,
    a.datas,
    strip=False,
    upx=True,
    upx_exclude=[],
    name='main',
)

如果需要更加詳細的打包語法,可以到官方文檔查看:https://pyinstaller.org/en/stable/index.html
在單文件模式下,不調(diào)用COLLECT,并且 EXE實例接收所有腳本、模塊和二進制文件
對于Analysis,我們主要要對

  • script: 寫所有的py文件
  • pathex:寫項目的地址,以及自定義庫的地址
  • datas:靜態(tài)文件數(shù)據(jù)的地址
  • binaries:二進制文件地址,如果有報錯,或者,需要用的時候再添加

其余的,不是常用的,直接運行不會影響程序的正常執(zhí)行,但是想要更加精細一點的話,建議根據(jù)上面的注釋來進行修改

3、 項目打包

然后,我們就需要將我們的項目進行打包了:

我們首先編寫main.spec文件:

# -*- mode: python ; coding: utf-8 -*-
block_cipher = None
a = Analysis(
    ['main.py', "demo1.py"],  
    pathex=["D:\\35005\\桌面\\demoTest"],
    binaries=[],
    datas=[("config\\*.json", "config")],
    hiddenimports=[],
    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='main',
    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,
)

這里是進行單個文件的打包,打包完成后,我們需要把那個config文件夾移動到可執(zhí)行程序的同級目錄下,然后就可以運行成功了!

運行成功后的目錄結(jié)構(gòu)為:

圖片

最后,就可以把我們生成的程序發(fā)給別人使用啦!

總結(jié)

到此這篇關(guān)于pyinstaller的介紹與使用超詳細講解的文章就介紹到這了,更多相關(guān)pyinstaller介紹與使用內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評論