ai之paddleOCR 識別PDF python312和paddle版本沖突 GLIBCXX_3.4.30

這里寫自定義目錄標題

  • 問題一
      • **解決方案**
        • **方法 1:使用符號鏈接將系統庫鏈接到 Conda 環境**
      • **補充說明**
      • **驗證修復結果**
  • 問題二:
      • **問題根源**
      • **解決方案**
        • **1. 確認 TensorRT 安裝狀態**
        • **2. 安裝 TensorRT 并配置環境變量**
        • **3. 驗證 TensorRT 與 PaddlePaddle 版本兼容性**
        • **4. 檢查 PaddlePaddle 編譯選項**
    • 注意:
      • **總結**

問題一

根據你的報錯信息,libstdc++.so.6: version 'GLIBCXX_3.4.30' not found 表示 當前 Conda 環境中的 libstdc++.so.6 版本過低,無法滿足 PaddlePaddle 的依賴需求。以下是完整的解決方法:


解決方案

方法 1:使用符號鏈接將系統庫鏈接到 Conda 環境
  1. 查找系統中已有的 libstdc++.so.6 文件

    sudo find / -name libstdc++.so.6
    

    通常路徑為:

    /usr/lib/x86_64-linux-gnu/libstdc++.so.6
    
  2. 檢查系統庫是否包含所需版本

    strings /usr/lib/x86_64-linux-gnu/libstdc++.so.6 | grep GLIBCXX
    

    如果輸出中包含 GLIBCXX_3.4.30,則說明系統庫已滿足需求。

  3. 刪除 Conda 環境中的舊庫文件

    rm /usr/local/miniconda/envs/ai_pyenv_3.12/lib/libstdc++.so.6
    rm /usr/local/miniconda/envs/ai_pyenv_3.12/lib/libstdc++.so
    
  4. 創建符號鏈接到系統庫

    ln -s /usr/lib/x86_64-linux-gnu/libstdc++.so.6 /usr/local/miniconda/envs/ai_pyenv_3.12/lib/libstdc++.so.6
    ln -s /usr/lib/x86_64-linux-gnu/libstdc++.so.6 /usr/local/miniconda/envs/ai_pyenv_3.12/lib/libstdc++.so
    
  5. 驗證修復

    strings /usr/local/miniconda/envs/ai_pyenv_3.12/lib/libstdc++.so.6 | grep GLIBCXX
    

    確保輸出中包含 GLIBCXX_3.4.30


在這里插入圖片描述


補充說明

  • 為什么會出現這個問題?
    Conda 環境默認使用的 libstdc++.so.6 是 Conda 自帶的版本,可能與系統版本不一致。當 PaddlePaddle 需要更高版本的 C++ 標準庫時,會報錯。

  • 如何避免類似問題?

    • 使用 Conda 安裝 PaddlePaddle 時,確保環境中的 libstdcxx-nggcc 版本與官方要求一致。
    • 或者直接使用系統 Python 環境,避免 Conda 的隔離問題。

驗證修復結果

運行以下命令檢查是否修復成功:

python -c "import paddle; print(paddle.__version__)"

如果不再報錯,說明修復成功。

問題二:

Traceback (most recent call last):File "/usr/local/soft/py/seek_backend_fast/demo/main_paddle.py", line 80, in <module>ocr_engine_paddle = PaddleOCR(^^^^^^^^^^File "/usr/local/miniconda/envs/ai_pyenv_3.12/lib/python3.12/site-packages/paddleocr/paddleocr.py", line 693, in __init__super().__init__(params)File "/usr/local/miniconda/envs/ai_pyenv_3.12/lib/python3.12/site-packages/paddleocr/tools/infer/predict_system.py", line 53, in __init__self.text_detector = predict_det.TextDetector(args)^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^File "/usr/local/miniconda/envs/ai_pyenv_3.12/lib/python3.12/site-packages/paddleocr/tools/infer/predict_det.py", line 139, in __init__) = utility.create_predictor(args, "det", logger)^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^File "/usr/local/miniconda/envs/ai_pyenv_3.12/lib/python3.12/site-packages/paddleocr/tools/infer/utility.py", line 364, in create_predictorpredictor = inference.create_predictor(config)^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
RuntimeError: (NotFound) TensorRT is needed, but TensorRT dynamic library is not found.Suggestions:1. Check if the TensorRT is installed correctly and its version is matched with paddlepaddle you installed.2. Configure environment variables as follows:- Linux: set LD_LIBRARY_PATH by `export LD_LIBRARY_PATH=...`- Windows: set PATH by `set PATH=XXX;[Hint: dso_handle should not be null.] (at ../paddle/fluid/platform/dynload/tensorrt.cc:44)

針對您遇到的 TensorRT 動態庫未找到 錯誤,以下是詳細的解決方案:


問題根源

錯誤提示表明 PaddlePaddle-GPU 需要 TensorRT 加速支持,但系統未正確配置 TensorRT 庫。主要原因包括:

  1. TensorRT 未安裝:系統中缺少 TensorRT 運行時庫
  2. 版本不匹配:安裝的 TensorRT 版本與 PaddlePaddle 或 CUDA 不兼容
  3. 環境變量缺失:TensorRT 庫路徑未添加到 LD_LIBRARY_PATH

The third-party dynamic library (cudnn64_7.dll) that Paddle depends on is not configured correctly. (error code is 126)
Windows10下安裝PaddlePaddle,進行paddle.utils.run_check()測試時報錯,初以為是缺少 cudnn64_7.dll 所致,其實不然,而是 CUDA 版本、CUDNN 版本與 Paddlepaddle 版本不兼容導致,PaddlePaddle官網信息如下:

如果您的計算機沒有 NVIDIA? GPU,請安裝CPU 版的 PaddlePaddle
如果您的計算機有 NVIDIA? GPU,請確保滿足以下條件并且安裝 GPU 版 PaddlePaddle
CUDA 工具包 10.2 配合 cuDNN v7.6.5,如需使用 PaddleTensorRT 推理,需配合 TensorRT7.0.0.11
CUDA 工具包 11.2 配合 cuDNN v8.2.1,如需使用 PaddleTensorRT 推理,需配合 TensorRT8.2.4.2
CUDA 工具包 11.6 配合 cuDNN v8.4.0,如需使用 PaddleTensorRT 推理,需配合 TensorRT8.4.0.6
CUDA 工具包 11.7 配合 cuDNN v8.4.1,如需使用 PaddleTensorRT 推理,需配合 TensorRT8.4.2.4
CUDA 工具包 11.8 配合 cuDNN v8.6.0,如需使用 PaddleTensorRT 推理,需配合 TensorRT8.5.1.7
CUDA 工具包 12.0 配合 cuDNN v8.9.1, 如需使用 PaddleTensorRT 推理,需配合 TensorRT8.6.1.6
GPU 運算能力超過 3.5 的硬件設備
注:目前官方發布的 windows 安裝包僅包含 CUDA 10.2/11.2/11.6/11.7/11.8/12.0,如需使用其他 cuda 版本,請通過源碼自行編譯。您可參考 NVIDIA 官方文檔了解 CUDA、CUDNN 和 TensorRT 的安裝流程和配置方法,請見CUDA,cuDNN,TensorRT

解決方案

1. 確認 TensorRT 安裝狀態

運行以下命令檢查是否已安裝 TensorRT:

dpkg -l | grep TensorRT  # Ubuntu/Debian
rpm -qa | grep TensorRT  # CentOS/RHEL

若未安裝,需手動下載安裝包:

# 從 NVIDIA 官網下載對應版本(示例為 CUDA 12.0 的 TensorRT 8.6.1)
wget https://developer.nvidia.com/downloads/compute/machine-learning/tensorrt/secure/8.6.1/tars/TensorRT-8.6.1.6.Linux.x86_64-gnu.cuda-12.0.tar.gz
tar -xzvf TensorRT-8.6.1.6.Linux.x86_64-gnu.cuda-12.0.tar.gz

2. 安裝 TensorRT 并配置環境變量
# 將解壓后的路徑加入環境變量(假設解壓到 /opt/TensorRT-8.6.1.6)
export LD_LIBRARY_PATH=/opt/TensorRT-8.6.1.6/lib:$LD_LIBRARY_PATH# 永久生效(推薦)
echo 'export LD_LIBRARY_PATH=/opt/TensorRT-8.6.1.6/lib:$LD_LIBRARY_PATH' >> ~/.bashrc
source ~/.bashrc

3. 驗證 TensorRT 與 PaddlePaddle 版本兼容性
PaddlePaddle 版本TensorRT 版本CUDA 版本cuDNN 版本
2.6.0 (post120)8.6.112.0+8.9+
2.5.2 (post118)8.5.311.88.6+

若版本不匹配,需重新安裝對應版本:

# 示例:為 CUDA 12.0 安裝 TensorRT 8.6.1
pip install tensorrt==8.6.1 --extra-index-url https://pypi.nvidia.com

4. 檢查 PaddlePaddle 編譯選項

確保安裝的 PaddlePaddle-GPU 包含 TensorRT 支持:

import paddle
print(paddle.inference.get_trt_compile_version())  # 應輸出 TensorRT 版本號
print(paddle.inference.get_trt_runtime_version())  # 應輸出運行時版本號

在這里插入圖片描述

注意:

vim ~/.bashrc

# 加入以下三行,只加第一行無效
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/***/TensorRT-8.4.1.5/lib
export TENSORRT_INCLUDE_DIR=/home/***/TensorRT-8.4.1.5
export PATH=/home/***/TensorRT-8.4.1.5/bin:$PATH# 使改動生效
source ~/.bashrc

總結

通過正確安裝匹配的 TensorRT 版本并配置環境變量,即可解決該錯誤。建議使用官方 Docker 鏡像避免環境配置問題:

docker pull paddlepaddle/paddle:2.6.0-gpu-cuda12.0-cudnn8.9-trt8.6
docker run -it --gpus all -v $(pwd):/workspace paddlepaddle/paddle:2.6.0-gpu-cuda12.0-cudnn8.9-trt8.6

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/81502.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/81502.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/81502.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【RabbitMQ】 RabbitMQ快速上手

文章目錄 一、RabbitMQ 核心概念1.1 Producer和Consumer2.2 Connection和Channel2.3 Virtual host2.4 Queue2.5 Exchange2.6 RabbitMQ工作流程 二、AMQP協議三 、web界面操作4.1 用戶相關操作4.2 虛擬主機相關操作 四、RabbitMQ快速入門4.1 引入依賴4.2 編寫生產者代碼4.2.1 創…

Beatoven AI 自動生成音樂

Beatoven AI 自動生成音樂 文章目錄 Beatoven AI 自動生成音樂一、源代碼二、準備工作1. 安裝 Python 環境2. 安裝依賴庫 三、配置 API 密鑰四、運行腳本示例一&#xff1a;使用默認參數示例二&#xff1a;生成一段電影預告片風格音樂&#xff08;30秒&#xff09; 五、生成結果…

筆試專題(十四)

文章目錄 mari和shiny題解代碼 體操隊形題解代碼 二叉樹中的最大路徑和題解代碼 mari和shiny 題目鏈接 題解 1. 可以用多狀態的線性dp 2. 細節處理&#xff1a;使用long long 存儲個數 3. 空間優化&#xff1a;只需要考慮等于’s’&#xff0c;‘sh’&#xff0c;shy’的情況…

LeetCode —— 94. 二叉樹的中序遍歷

&#x1f636;?&#x1f32b;?&#x1f636;?&#x1f32b;?&#x1f636;?&#x1f32b;?&#x1f636;?&#x1f32b;?Take your time ! &#x1f636;?&#x1f32b;?&#x1f636;?&#x1f32b;?&#x1f636;?&#x1f32b;?&#x1f636;?&#x1f32b;?…

conda相關操作

安裝torch 直接使用conda install torch1.12.0會報錯&#xff0c;因為 Conda 通常使用 pytorch 作為包名&#xff08;而非 torch&#xff09; 正確使用方法&#xff1a; conda install pytorch1.12.0 -c pytorch使用 pip 安裝 pip install torch1.12.0在 Conda 中查看可安裝…

【Java面試筆記:進階】26.如何監控和診斷JVM堆內和堆外內存使用?

監控和診斷JVM內存使用是優化性能和解決內存問題的關鍵。 1.JVM內存監控與診斷方法 1.圖形化工具 JConsole:提供圖形化界面,可直接連接到Java進程,查看內存使用情況。VisualVM:功能強大的圖形化工具,但注意從Oracle JDK 9開始不再包含在JDK安裝包中。Java Mission Contr…

AVIOContext 再學習

這個目前階段用的不多&#xff0c;暫時不要花費太多精力。 url 的格式不同&#xff0c;使用的傳輸層協議也不同。這塊看代碼還沒看到自己想的這樣。 目前看的信息是&#xff1a;avformatContext 的 io_open 回調函數 在默認情況下叫 io_open_default&#xff0c;在解復用的 av…

在Java項目中實現本地語音識別與熱點檢測,并集成阿里云智能語音服務

引言 隨著語音交互技術的發展&#xff0c;如何高效地處理用戶的語音輸入成為許多應用的重要課題。本文將詳細介紹如何在一個Java項目中同時實現&#xff1a; 基于Vosk的本地語音識別&#xff1a;無需調用云端API即可完成語音到文本的轉換。本地熱點語音內容識別&#xff1a;對…

第15章 對API的身份驗證和授權

第15章 對API的身份驗證和授權 在構建RESTful API時,確保只有經過身份驗證和授權的用戶才能訪問特定資源是至關重要的。身份驗證是確認用戶身份的過程,而授權則是決定用戶是否有權訪問特定資源的過程。在本章中,我們將詳細探討如何在ASP.NET Core Web API中實現身份驗證和授…

asp.net客戶管理系統批量客戶信息上傳系統客戶跟單系統crm

# crm-150708 客戶管理系統批量客戶信息上傳系統客戶跟單系統 # 開發背景 本軟件是給鄭州某企業管理咨詢公司開發的客戶管理系統軟件 # 功能 1、導入客戶數據到系統 2、批量將不同的客戶分配給不同的業務員跟進 3、可以對客戶數據根據緊急程度標記不同的顏色&#xff0c…

深入理解現代JavaScript:從ES6+語法到Fetch API

引言 JavaScript作為Web開發的基石語言&#xff0c;近年來經歷了翻天覆地的變化。ES6(ECMAScript 2015)的發布帶來了革命性的新特性&#xff0c;而現代瀏覽器提供的API也讓前端開發變得更加強大和高效。本文將深入探討ES6核心語法、DOM操作優化技巧以及使用Fetch API進行異步請…

仙盟創夢IDE-智能編程,C#判斷數組中是否存在key

一、net4 net core版本 使用LINQ的Contains方法 string[] array { "apple", "banana", "cherry" };string key "banana";bool exists array.Contains(key);if (exists){Console.WriteLine($"數組中存在鍵 {key}");}else…

360驅動大師v2.0(含網卡版)驅動工具軟件下載及安裝教程

1.軟件名稱&#xff1a;360驅動大師 2.軟件版本&#xff1a;2.0 3.軟件大小&#xff1a;218 MB 4.安裝環境&#xff1a;win7/win10/win11 5.下載地址&#xff1a; https://www.kdocs.cn/l/cdZMwizD2ZL1?RL1MvMTM%3D 提示&#xff1a;先轉存后下載&#xff0c;防止資源丟失&…

2025年- H22-Lc130-206. 反轉鏈表(鏈表)---java版

1.題目描述 2.思路 使用迭代法 (1)定義一個前指針 (2)然后定義兩個變量 curr&#xff08;head&#xff09;&#xff0c;curr.next。 (3)curr和curr.next交換位置&#xff08;只要當前指針不為空&#xff0c;執行兩兩交換&#xff09; 3.代碼實現 /*** Definition for singly-…

機器學習常用評價指標

1. 指標說明 (1) AccuracyClassification&#xff08;準確率&#xff09; ? 計算方式&#xff1a;accuracy_score(y_true, y_pred) ? 作用&#xff1a; 衡量模型正確預測的樣本比例&#xff08;包括所有類別&#xff09;。 公式&#xff1a; Accuracy TP TN TP TN FP…

CGI(Common Gateway Interface)協議詳解

CGI&#xff08;通用網關接口&#xff09;是一種標準化的協議&#xff0c;定義了 Web服務器 與 外部程序&#xff08;如腳本或可執行文件&#xff09;之間的數據交互方式。它允許服務器動態生成網頁內容&#xff0c;而不僅僅是返回靜態文件。 1. CGI 的核心作用 動態內容生成&a…

2025.4.29總結

工作&#xff1a;最近手頭活變得多起來了&#xff0c;畢竟要測兩個版本&#xff0c;有時候覺得很奇怪&#xff0c;活少的時候&#xff0c;又想讓別人多分點活&#xff0c;活多的時候&#xff0c;又會有些許不自然。這種反差往往伴隨著項目的節奏&#xff0c;伴隨著兩個極端。所…

【KWDB 創作者計劃】技術解讀:多模架構、高效時序數據處理與分布式實現

技術解讀&#xff1a;多模架構、高效時序數據處理與分布式實現 一、多模架構1.1 架構概述1.2 源碼分析1.3 實現流程 二、高效時序數據處理2.1 處理能力概述2.2 源碼分析2.3 實現流程 三、分布式實現3.1 分布式特性概述3.2 源碼分析3.3 實現流程 四、總結 在當今數據爆炸的時代&…

# 前后端分離象棋對戰項目開發記錄

1. **結構清晰**&#xff1a;使用更直觀的標題、分段和列表&#xff0c;增強可讀性。 2. **視覺美觀**&#xff1a;添加Markdown格式化&#xff08;如代碼塊、加粗、斜體&#xff09;&#xff0c;并建議配色和排版風格。 3. **內容精煉**&#xff1a;精簡冗余表述&#xff0c;突…

HarmonyOS NEXT 詩詞元服務項目開發上架全流程實戰(一、項目介紹及實現效果)

在當今數字化時代&#xff0c;如何讓傳統文化與現代科技相結合&#xff0c;成為了一個值得思考的問題。詩詞作為中國傳統文化的重要組成部分&#xff0c;承載著豐富的歷史信息和文化內涵。為了讓更多人了解和欣賞詩詞的魅力&#xff0c;我們決定開發一款基于HarmonyOS NEXT的詩…