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

pyinstaller打包可執(zhí)行程序過(guò)程中的常見(jiàn)錯(cuò)誤解決

 更新時(shí)間:2023年11月07日 10:20:57   作者:帶魚工作室  
這篇文章主要介紹了pyinstaller打包可執(zhí)行程序過(guò)程中的常見(jiàn)錯(cuò)誤解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

pyinstaller作為一個(gè)優(yōu)秀的三方庫(kù),可以將你的程序打包成為windows可執(zhí)行文件(exe),下面對(duì)使用過(guò)程中可能會(huì)出現(xiàn)的問(wèn)題進(jìn)行解答:

1、打包流程

pyinstaller的打包流程主要可以分成兩部分:

1.1、生成配置文件(xx.spec)

首先在你的電腦上裝好pyinstaller程序庫(kù),通過(guò)pip安裝即可,然后進(jìn)入你想打包程序所在的路徑,

例如你想打包pickme.py,使用如下命令生成配置文件:

pyi-makespec pickme.py

然后你就可以在pickme.py的同級(jí)目錄中查看到pickme.spec的文件,該文件是你打包pickme.py文件的配置文件,里面包含打包相關(guān)的所有配置。

1.2、生成可執(zhí)行文件(xx.exe)

1.1執(zhí)行過(guò)后,使用如下命令:

pyinstaller pickme.spec

該命令即可將你運(yùn)行pickme.py文件所需的環(huán)境全部進(jìn)行打包,這塊切記:打包過(guò)程中生成build與dist文件夾,dist文件夾包含你所打包程序的一個(gè)文件夾,里面包含程序運(yùn)行依賴(相當(dāng)于對(duì)你環(huán)境的備份,確保移植到?jīng)]有環(huán)境的電腦上依然可以使用),例如我的dist文件夾目錄如下:

圖1 dist文件目錄??????

圖1為我進(jìn)行打包時(shí)的示例,我的dist文件夾包含baseline_model_run_new文件夾(是由于我打包的程序名字是baseline_model_run_new.py,具體文件夾名字跟你們打包的程序名字一致),打開(kāi)baseline_model_run_new文件夾即為圖1所示,由圖1可知,其中包含了紅色框框的exe文件及許許多多依賴文件,這種才是正確的,如果你的dist文件夾中僅有exe文件,那么別人是沒(méi)辦法運(yùn)行你的exe文件,因?yàn)闆](méi)有打包環(huán)境,請(qǐng)按照1.1與1.2重新操作。

2、打包程序需要讀取外部數(shù)據(jù)(額外讀取數(shù)據(jù))

在深度學(xué)習(xí)或者機(jī)器學(xué)習(xí)過(guò)程中避免不了會(huì)涉及讀取額外的數(shù)據(jù),那么這塊配置不好就會(huì)導(dǎo)致別人運(yùn)行你的exe文件時(shí)出現(xiàn)圖2的效果:

圖2 exe文件數(shù)據(jù)錯(cuò)誤

圖2中展示的是程序需要讀取額外數(shù)據(jù)的錯(cuò)誤,程序在本地運(yùn)行沒(méi)有任何問(wèn)題,但一打包后問(wèn)題頻出,各種找不到文件,這種問(wèn)題主要是因?yàn)閿?shù)據(jù)路徑以及配置的問(wèn)題,直接上代碼說(shuō)明。

block_cipher = None
a = Analysis(['baseline_model_run_new.py'],    ### 名稱不同
             pathex=[],
             binaries=[],   
             datas=[('train_data.txt','.'),  ('model.pth', '.')],     ### 內(nèi)容不同
             hiddenimports=[],
             hookspath=[],
             runtime_hooks=[],
             excludes=[],
             win_no_prefer_redirects=False,
             win_private_assemblies=False,
             cipher=block_cipher)

上述代碼是spec文件中的部分內(nèi)容,第二行被打包的文件名稱根據(jù)你們所打包的py文件會(huì)自動(dòng)生成,不同的是第五行的datas列表,默認(rèn)它是一個(gè)空列表,需要什么文件得自己添加進(jìn)去,例如我的程序讀取train_data.txt文件,存放位置是:py文件與txt文件同級(jí)目錄存放,那么寫法如上,同時(shí)可能還需要深度學(xué)習(xí)的模型文件,同理可得。

然后保存spec文件,執(zhí)行如下命令:

pyinstaller pickme.spec

重新編譯spec文件,即可打包,打包完成的一定與圖1相似,一定要包含相關(guān)環(huán)境?。?!

3、他人運(yùn)行閃退的問(wèn)題

你信心滿滿的把打包后的文件發(fā)給同學(xué)時(shí),他一打開(kāi)就閃退,而你也設(shè)置了input這些,這是為什么呢?這塊是你可能只發(fā)了exe文件,而沒(méi)有相關(guān)環(huán)境,此時(shí)把dist文件夾全部壓縮發(fā)給你的同學(xué),再讓他執(zhí)行exe文件即可,避免了閃退的問(wèn)題 。

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Python中那些 Pythonic的寫法詳解

    Python中那些 Pythonic的寫法詳解

    這篇文章主要介紹了Python中那些 Pythonic的寫法詳解,一份優(yōu)雅、干凈、整潔的代碼通常自帶文檔和注釋屬性,讀代碼即是讀作者的思路,需要的朋友可以參考下
    2019-07-07
  • numpy中關(guān)于where函數(shù)的用法

    numpy中關(guān)于where函數(shù)的用法

    這篇文章主要介紹了numpy中關(guān)于where函數(shù)的用法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-02-02
  • python實(shí)現(xiàn)文件助手中查看微信撤回消息

    python實(shí)現(xiàn)文件助手中查看微信撤回消息

    這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)文件助手中查看微信撤回消息,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-04-04
  • Python3爬蟲使用Fidder實(shí)現(xiàn)APP爬取示例

    Python3爬蟲使用Fidder實(shí)現(xiàn)APP爬取示例

    這篇文章主要介紹了Python3爬蟲使用Fidder實(shí)現(xiàn)APP爬取示例,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-11-11
  • Python 線程池用法簡(jiǎn)單示例

    Python 線程池用法簡(jiǎn)單示例

    這篇文章主要介紹了Python 線程池用法,結(jié)合簡(jiǎn)單實(shí)例形式分析了Python線程池相關(guān)使用技巧與操作注意事項(xiàng),需要的朋友可以參考下
    2019-10-10
  • 使用Mac時(shí)psycopg2導(dǎo)入PyCharm失敗的解決

    使用Mac時(shí)psycopg2導(dǎo)入PyCharm失敗的解決

    這篇文章主要介紹了使用Mac時(shí)psycopg2導(dǎo)入PyCharm失敗的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-01-01
  • 在pycharm中創(chuàng)建django項(xiàng)目的示例代碼

    在pycharm中創(chuàng)建django項(xiàng)目的示例代碼

    這篇文章主要介紹了在pycharm中創(chuàng)建django項(xiàng)目的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-05-05
  • python+selenium實(shí)現(xiàn)QQ郵箱自動(dòng)發(fā)送功能

    python+selenium實(shí)現(xiàn)QQ郵箱自動(dòng)發(fā)送功能

    這篇文章主要為大家詳細(xì)介紹了python+selenium實(shí)現(xiàn)QQ郵箱自動(dòng)發(fā)送功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-01-01
  • 解決jupyter notebook import error但是命令提示符import正常的問(wèn)題

    解決jupyter notebook import error但是命令提示符import正常的問(wèn)題

    這篇文章主要介紹了解決jupyter notebook import error但是命令提示符import正常的問(wèn)題,具有很好的參考
    2020-04-04
  • Python低層多線程接口_thread模塊的用法和特性

    Python低層多線程接口_thread模塊的用法和特性

    這篇文章主要介紹了Python低層多線程接口_thread模塊的用法和特性,_thread是python標(biāo)準(zhǔn)庫(kù)中的一個(gè)低層多線程API,可以在進(jìn)程中啟動(dòng)線程來(lái)處理任務(wù),并且提供了簡(jiǎn)單的鎖機(jī)制來(lái)控制共享資源的同步訪問(wèn),本文就_thread模塊的用法和特性做個(gè)簡(jiǎn)單的演示,需要的朋友可以參考下
    2024-10-10

最新評(píng)論