![](/img/trans.png)
[英]Anaconda ImportError: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found
[英]/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。
PS : Stretch是Debian 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_paths和How to update libstdc++.so.6 or change the file to use on Tensorflow, Python 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.