pyinstaller打包xgboost項(xiàng)目發(fā)生錯(cuò)誤問題及解決
問題描述
用pyinstaller打包一個(gè)調(diào)用了xgboost的項(xiàng)目,打包時(shí)沒有報(bào)錯(cuò),但是運(yùn)行打包生成的可執(zhí)行文件時(shí)
報(bào)出了如下錯(cuò)誤,但xxx/libxgboost.so這個(gè)文件確實(shí)存在。
Error message(s): ["Failed to load dynlib/dll 'xxx/libxgboost.so'. Most likely this dynlib/dll was not found when the application was frozen."]
原因分析
經(jīng)過排查:
發(fā)現(xiàn)是libxgboost.so的一個(gè)依賴庫沒有找到,進(jìn)而導(dǎo)致了加載錯(cuò)誤。
具體而言:
libxgboost.so要依賴libgomp-a34b3233.so.1.0.0這個(gè)庫,但該庫在系統(tǒng)中的名稱為libgomp.so.1.0.0。
解決方法
將libgomp.so.1.0.0復(fù)制項(xiàng)目目錄,并重命名為libgomp-a34b3233.so.1.0.0即可。
疑惑
直接運(yùn)行未打包的python項(xiàng)目時(shí),并不會(huì)觸發(fā)上述錯(cuò)誤,原因是什么呢?
猜測
不報(bào)錯(cuò)的原因是,python項(xiàng)目加載動(dòng)態(tài)庫時(shí),用的是ctypes.cdll.LoadLibrary函數(shù),可能該函數(shù)的加載機(jī)制與pyinstaller生成的可執(zhí)行文件的加載機(jī)制不同?
相關(guān)命令
- 查詢一個(gè)動(dòng)態(tài)庫的依賴庫:
objdump -x filename.so | grep NEEDED
- 查詢一個(gè)動(dòng)態(tài)庫是否存在:
ldconfig -p | grep libpthread
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
- pyinstaller打包遇到dll問題及解決方案
- 使用PyInstaller將Flask項(xiàng)目一鍵打包成獨(dú)立可執(zhí)行文件的實(shí)戰(zhàn)指南
- Python利用PyInstaller庫實(shí)現(xiàn)將腳本一鍵打包為EXE文件
- Python使用PyInstaller/pip打包與發(fā)布的詳細(xì)指南
- PyInstaller打包TkinterDnD應(yīng)用時(shí)窗口圖標(biāo)失效問題的解決詳解
- Windows下PyInstaller打包Python的完整教程
- 使用PyInstaller打包Python項(xiàng)目過程
- 使用PyInstaller打包Python腳本為可執(zhí)行文件的詳細(xì)指南
相關(guān)文章
python正則表達(dá)式查找和替換內(nèi)容的實(shí)例詳解
在本篇文章里小編給大家整理的是一篇關(guān)于python正則表達(dá)式查找和替換內(nèi)容的實(shí)例詳解內(nèi)容,有興趣的朋友們可以跟著學(xué)習(xí)參考下。2021-10-10
Python實(shí)現(xiàn)自動(dòng)化拆分Word文檔(按分節(jié)符與分頁符)的完整教程
在處理大型 Word 文檔時(shí),我們經(jīng)常需要將一個(gè)完整的文檔拆分成多個(gè)獨(dú)立的小文檔,下面我們就來看看Python如何實(shí)現(xiàn)按分頁符和分節(jié)符自動(dòng)化拆分 Word 文檔吧2026-04-04
python字典dict中常用內(nèi)置函數(shù)的使用
本文主要介紹了python字典dict中常用內(nèi)置函數(shù)的使用,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-04-04
python中從for循環(huán)延申到推導(dǎo)式的具體使用
這篇文章主要介紹了python中從for循環(huán)延申到推導(dǎo)式的具體使用,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-11-11
基于進(jìn)程內(nèi)通訊的python聊天室實(shí)現(xiàn)方法
這篇文章主要介紹了基于進(jìn)程內(nèi)通訊的python聊天室實(shí)現(xiàn)方法,實(shí)例分析了Python聊天室的相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下2015-06-06

