簡體   English   中英

/usr/lib/x86_64-linux-gnu/libstdc++.so.6: 找不到 TensorFlow 需要的版本“GLIBCXX_3.4.21”

[英]/usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.21' not found required by TensorFlow

我正在嘗試使用機器學習庫在debian服務器上部署一個Flask應用程序,到目前為止我使用大多數 ML 庫進行了管理,但是由於TensorFlow ,我得到了這個錯誤,我對它進行了大量研究,但沒有對我有用的解決方案。

PS:我正在為我的應用程序使用 3.7 python venv

導入錯誤:/usr/lib/x86_64-linux-gnu/libstdc++.so.6:未找到版本“GLIBCXX_3.4.21”(/flask/wstest/lib/python3.7/site-packages/tensorflow/python/_pywrap_tensorflow_internal 需要) .so) Mar 01 15:32:11 django gunicorn[8803]:無法加載本機 TensorFlow 運行時。

我清楚地錯過了GLIBCXX 3.4.21因為strings /usr/lib/x86_64-linux-gnu/libstdc++.so.6 | grep GLIBCXX strings /usr/lib/x86_64-linux-gnu/libstdc++.so.6 | grep GLIBCXX顯示3.4.20作為最新版本。

嘗試了這個修復add-apt-repository ppa:ubuntu-toolchain-r/test給出了這個:工具鏈添加嘗試的結果

嘗試 apt-get 更新,得到這個

W:無法獲取http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu/dists/jessie/main/binary-amd64/Packages 404 Not Found

還嘗試更新 libgcc 和 libstdc++6,說我有最新版本。

編輯:我懷疑 Debian 8 Jessie 不支持比 3.4.20 更高的 glibcxx 版本。

這是 Ubuntu 16.04 中此問題的解決方案

sudo apt-get install software-properties-common
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt-get update
sudo apt-get install gcc-4.9
sudo apt-get upgrade libstdc++6

您可以檢查是否獲得了 GLIBCXX 所需的版本,如下所示:

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

所以,我剛剛測試了Stretch ,它工作正常。 在這種情況下,該問題與Debian 8 Jessie的操作系統有關,它無法處理比 3.4.20 更高版本的 glibcxxx。

PSStretchDebian 9的發行版名稱

如果您使用的是 Anaconda/Miniconda,您還可以通過設置LD_LIBRARY_PATH環境變量,讓您的操作系統使用隨安裝提供的libstdc++.so.6 假設您在/home/whatever/miniconda3 miniconda3 中安裝了/home/whatever/miniconda3並且您正在使用bash 然后將其添加到您的~/.bashrc

export LD_LIBRARY_PATH:/usr/lib/x86_64-linux-gnu/:/home/whatever/miniconda3/lib

source ~/.bashrc或重新啟動你的shell,你應該很高興。

另請參閱: https : //gcc.gnu.org/onlinedocs/libstdc++/faq.html#faq.how_to_set_pathsHow to update libstdc++.so.6 or change the file to use on Tensorflow, Python

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM