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

python之pyinstaller組件打包命令和異常解析實(shí)戰(zhàn)

 更新時(shí)間:2021年09月20日 11:55:31   作者:愛(ài)彈吉他的小盆友  
前段時(shí)間在制作小工具的時(shí)候,直接在命令行用pyinstaller工具打包成功后,啟動(dòng)exe可執(zhí)行文件的時(shí)候各種報(bào)錯(cuò), 今天,我們就分享一下踩坑經(jīng)過(guò),需要的朋友可以參考下

項(xiàng)目場(chǎng)景:

Python版本:3.8

因公司業(yè)務(wù)需求,須開(kāi)發(fā)一套局域網(wǎng)內(nèi)視頻會(huì)議軟件,此次采用Python實(shí)現(xiàn)此功能。
程序編寫(xiě)完并在編譯器實(shí)現(xiàn)此功能后,采用pyinstaller組件打包成應(yīng)用程序

問(wèn)題描述:

在使用pyinstaller組件打包過(guò)程中,著實(shí)遇到一些問(wèn)題,以下列出此次遇到主要的問(wèn)題:

1.如何打包多個(gè)文件?

2.打包完運(yùn)行后控制臺(tái)顯示"找不到指定模塊。mkl_intel_thread.l.dll",圖示如下:

在這里插入圖片描述

3.打包如何排除不需要的組件以減少包的大???

4.待補(bǔ)充 (≧◠◡◠≦)✌

原因分析:

本次打包組件均由conda install安裝,在編譯器中opencv引用模塊運(yùn)行項(xiàng)目是沒(méi)問(wèn)題的,只是打包運(yùn)行就會(huì)報(bào)Intel MKL FATAL ERROR: Cannot load mkl_intel_thread.l.dll,缺少M(fèi)KL文件 ,疑惑了一段時(shí)間…( @_@; )

解決方案:

首先呢,當(dāng)然是找百度大神來(lái)解決問(wèn)題啦 (๑•̀ㅂ•́)و✧,尋尋覓覓,無(wú)果,但至少讓我理解了一點(diǎn)打包的過(guò)程和注意事項(xiàng),結(jié)合過(guò)去代碼經(jīng)驗(yàn),這次把Anaconda的opencv、numpy和mkl模塊都給卸了,代碼如下:

conda uninstall opencv
conda uninstall numpy
conda uninstall mkl

然后改成如下:

pip install mkl
pip install numpy
pip install opencv

以上最好按順序安裝,三個(gè)組件有相互依賴(lài)關(guān)系,安裝完發(fā)現(xiàn)部署后不再報(bào)錯(cuò)。

在安裝過(guò)程中也發(fā)現(xiàn)了兩個(gè)安裝方式安裝的組件其實(shí)不太相同,從包的大小得知,pip install安裝的包應(yīng)該是比較完整的,所以pyinstaller打包起來(lái)不會(huì)導(dǎo)致文件丟失。

這里就解決了問(wèn)題2啦(把最難的先給解決啦~ (  ̄ー ̄)人(^▽^ ))

接下來(lái)說(shuō)明一下如何打包多文件。

首先要打包多文件,先生成一個(gè)spec文件,代碼如下:

pyi-makespec app.py

這行代碼會(huì)生成一個(gè)app.spec文件在當(dāng)前目錄下。

生成的app.spec的內(nèi)容如下:

# -*- mode: python ; coding: utf-8 -*-

block_cipher = None

#如果要添加打包文件,在這里添加
a = Analysis(['app.py'], #例:['app.py','app1.py','app2.py']
             pathex=['C:\\yourAppDir'], #打包路徑,一般默認(rèn)為當(dāng)前文件夾路徑
             binaries=[],
             # 打包靜態(tài)資源,這邊為元祖類(lèi)型
             datas=[], # 例:[('C\\yourAppDir\\images','images'),('C\\yourAppDir\\videos','videos')]
             hiddenimports=[],
             hookspath=[],
             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,
          [],
          #生成的執(zhí)行文件名
          name='MyAwesomeApp', #生成 MyAwesomeApp.exe
          debug=False,
          bootloader_ignore_signals=False,
          strip=False,
          upx=True,
          upx_exclude=[],
          runtime_tmpdir=None,
          #運(yùn)行時(shí)是否顯示控制臺(tái),注意True和False的首字母都要大寫(xiě)
          console=True)

以下為打包常用命令:

常用:
-i  給應(yīng)用程序添加圖標(biāo)
-F	指定打包后只生成一個(gè)exe格式的文件
-D	–onedir 創(chuàng)建一個(gè)目錄,包含exe文件,但會(huì)依賴(lài)很多文件(默認(rèn)選項(xiàng))
-c	–console, –nowindowed 使用控制臺(tái),無(wú)界面(默認(rèn))
-w	–windowed, –noconsole 使用窗口,無(wú)控制臺(tái)
-p  添加搜索路徑

這邊我用的是:

pyinstaller -F app.spec

過(guò)了一會(huì)兒打包完成后會(huì)在當(dāng)前目錄生成三個(gè)文件夾,如下圖所示:

在這里插入圖片描述

_pycache_文件夾緩存你打包的文件。(如果組件有重新安裝,打包時(shí)建議刪了再進(jìn)行打包)

bulid文件夾保存一些關(guān)于打包文件的信息。

dist文件保存打包完生成的.exe文件。

以上,問(wèn)題1結(jié)束啦,接下來(lái)最后一個(gè)問(wèn)題3咯~ ( ̄▽?zhuān)?~■干杯□~( ̄▽?zhuān)?

記得第一次打包的時(shí)候,很納悶,為啥寫(xiě)一點(diǎn)代碼打包起來(lái)要100多MB? ㄟ( ▔, ▔ )ㄏ

首先依然百度一下,你就…還是不知道 (ˉ▽?zhuān)? 切~~

還是靠自己啦,最后打開(kāi)編譯器看一下環(huán)境,陡然發(fā)現(xiàn)環(huán)境多了很多不需要的組件。

如果怕麻煩一個(gè)一個(gè)conda uninstall的話(huà),建議新建一個(gè)干凈的python3環(huán)境,再安裝自己需要的組件。

(當(dāng)前Python環(huán)境建議新建一個(gè)在項(xiàng)目當(dāng)前目錄下,為當(dāng)前項(xiàng)目專(zhuān)用環(huán)境,初始化只有兩個(gè)基本組件,再安裝requirement.txt文件中的組件就可以了)

這樣打包起來(lái)你就會(huì)發(fā)現(xiàn)包小了很多。

終于寫(xiě)完啦 o(*≧▽≦)ツ┏━┓ 開(kāi)熏

錦瑟無(wú)端五十弦,一弦一柱思華年

在這里插入圖片描述

到此這篇關(guān)于python之pyinstaller組件打包命令和異常解析實(shí)戰(zhàn)的文章就介紹到這了,更多相關(guān)python pyinstaller內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 獲取Pytorch中間某一層權(quán)重或者特征的例子

    獲取Pytorch中間某一層權(quán)重或者特征的例子

    今天小編就為大家分享一篇獲取Pytorch中間某一層權(quán)重或者特征的例子,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-08-08
  • python驗(yàn)證碼識(shí)別教程之灰度處理、二值化、降噪與tesserocr識(shí)別

    python驗(yàn)證碼識(shí)別教程之灰度處理、二值化、降噪與tesserocr識(shí)別

    這篇文章主要給大家介紹了關(guān)于python驗(yàn)證碼識(shí)別教程之灰度處理、二值化、降噪與tesserocr識(shí)別的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2018-06-06
  • python中數(shù)組nums[:]和nums的區(qū)別

    python中數(shù)組nums[:]和nums的區(qū)別

    本文主要介紹了python中數(shù)組nums[:]和nums的區(qū)別,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-07-07
  • python如何操作mysql

    python如何操作mysql

    這篇文章主要介紹了python如何操作MySQL,幫助大家更好的理解和學(xué)習(xí)python,感興趣的朋友可以了解下
    2020-08-08
  • Python獲取任意xml節(jié)點(diǎn)值的方法

    Python獲取任意xml節(jié)點(diǎn)值的方法

    這篇文章主要介紹了Python獲取任意xml節(jié)點(diǎn)值的方法,涉及Python操作XML節(jié)點(diǎn)的相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-05-05
  • python運(yùn)用sklearn實(shí)現(xiàn)KNN分類(lèi)算法

    python運(yùn)用sklearn實(shí)現(xiàn)KNN分類(lèi)算法

    這篇文章主要為大家詳細(xì)介紹了python運(yùn)用sklearn實(shí)現(xiàn)KNN分類(lèi)算法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-10-10
  • 運(yùn)用Python巧妙處理Word文檔的方法詳解

    運(yùn)用Python巧妙處理Word文檔的方法詳解

    大家平時(shí)在工作與學(xué)習(xí)中都會(huì)操作到Word文件格式,特別是很多數(shù)據(jù)的時(shí)候,靠人力去識(shí)別操作非常容易出錯(cuò)。今天就帶大家用python來(lái)處理Word文件,感興趣的可以了解一下
    2022-05-05
  • Django2.1.7 查詢(xún)數(shù)據(jù)返回json格式的實(shí)現(xiàn)

    Django2.1.7 查詢(xún)數(shù)據(jù)返回json格式的實(shí)現(xiàn)

    這篇文章主要介紹了Django2.1.7 查詢(xún)數(shù)據(jù)返回json格式的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • python連接mysql調(diào)用存儲(chǔ)過(guò)程示例

    python連接mysql調(diào)用存儲(chǔ)過(guò)程示例

    這篇文章主要介紹了python連接mysql調(diào)用存儲(chǔ)過(guò)程示例,需要的朋友可以參考下
    2014-03-03
  • Python實(shí)現(xiàn)動(dòng)態(tài)圖解析、合成與倒放

    Python實(shí)現(xiàn)動(dòng)態(tài)圖解析、合成與倒放

    這篇文章主要為大家詳細(xì)介紹了Python實(shí)現(xiàn)動(dòng)態(tài)圖的解析、合成與倒放,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-01-01

最新評(píng)論