/usr/lib/x86_64-linux-gnu/libstdc++.so.6:TensorFlow找不到版本'GLIBCXX_3.4.21'

时间:2019-03-01 16:00:01

标签: python tensorflow debian libstdc++

我正在尝试使用Machine Learning库在 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)   3月1日15:32:11 django gunicorn [8803]:无法加载本机TensorFlow运行时。

我显然错过了GLIBCXX 3.4.21 ,因为strings /usr/lib/x86_64-linux-gnu/libstdc++.so.6 | grep GLIBCXX显示的是最新版本 3.4.20

尝试了此修复程序add-apt-repository ppa:ubuntu-toolchain-r/test 给这个: result of the toolchain add attempt

尝试apt-get更新,得到了

  

W:无法获取http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu/dists/jessie/main/binary-amd64/Packages 404找不到

我也尝试更新libgcc和libstdc ++ 6,说我有最新版本。

编辑:我怀疑Debian 8 Jessie不支持高于3.4.20的glibcxx版本。

3 个答案:

答案 0 :(得分:0)

因此,我刚刚测试了 Stretch ,并且效果很好。在这种情况下,问题与操作系统有关。 Debian 8 Jessie ,它不能处理的glibcxxx版本高于3.4.20。

PS Stretch Debian 9 的发行名称

答案 1 :(得分:0)

这是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

答案 2 :(得分:0)

如果您使用的是 Anaconda/Miniconda,您还可以通过设置 libstdc++.so.6 环境变量,让您的操作系统使用随安装提供的 LD_LIBRARY_PATH。假设您在 /home/whatever/miniconda3 中安装了 Miniconda 并且您正在使用 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