在Ubuntu 12.04 LTS上无法正确安装或加载Tensorflow,导致ImportError。

3

我尝试在我的Ubuntu 12.04 LTS系统上安装TensorFlow的Anaconda安装程序,安装成功了,但在Python中导入库时,遇到了下面的ImportError错误。

我查看了一个类似线程的解决方案,但对我没有用。

基本上这就是我进行安装的步骤:

$ conda create -n tensorflow python=2.7
$ source activate tensorflow
(tensorflow)$ conda install -c conda-forge tensorflow
(tensorflow)$ source deactivate
$ source activate tensorflow

接着我在虚拟环境中加载了Python,并尝试导入tensorflow。但是我得到了以下错误:

>>> import tensorflow
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/anirudh/anaconda/envs/tensorflow/lib/python2.7/site-packages/tensorflow/__init__.py", line 23, in <module>
from tensorflow.python import *
  File "/home/anirudh/anaconda/envs/tensorflow/lib/python2.7/site-packages/tensorflow/python/__init__.py", line 48, in <module>
from tensorflow.python import pywrap_tensorflow
  File "/home/anirudh/anaconda/envs/tensorflow/lib/python2.7/site-packages/tensorflow/python/pywrap_tensorflow.py", line 28, in <module>
_pywrap_tensorflow = swig_import_helper()
  File "/home/anirudh/anaconda/envs/tensorflow/lib/python2.7/site-packages/tensorflow/python/pywrap_tensorflow.py", line 24, in swig_import_helper
_mod = imp.load_module('_pywrap_tensorflow', fp, pathname, description)
 ImportError: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.19' not found (required by /home/anirudh/anaconda/envs/tensorflow/lib/python2.7/site-packages/tensorflow/python/_pywrap_tensorflow.so)

我该如何对此进行排序?


你为什么坚持使用四年前的操作系统版本? - Dirk Eddelbuettel
恰巧我的计算机硬件不兼容软件升级。升级会导致图形驱动程序在重新启动时失败。我有一台戴尔Vostro 3445笔记本电脑。 - Anirudh
很抱歉听到这个消息。 - Dirk Eddelbuettel
3个回答

0

您需要安装libstdc++6,它有一些依赖项如gccg++,至少需要gcc-4.6版本:

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

或者你可以安装 linux-headersbuild-essential,它们包含一些有用的工具,如 gcc 编译器、make ... 用于从源代码编译和构建软件的工具。


0

这种情况发生在我的CentOS 7系统中。

在conda环境中运行Python脚本时,我遇到了一个非常类似的错误,提示需要tensorflow包装器所需的"GLIBCXX_3.4.22..."。

在我的情况下,我首先尝试了以下操作:

"conda install libgcc"

虽然安装了一些库,但并没有解决我的问题。最终,我通过删除之前安装的Schroedinger maestro软件附带的文件夹中的"GLIBCXX"来解决了这个问题。我认为,两个库之间存在某种冲突。


0

这个错误可能与您的glibc版本有关。有一些相关主题:在哪里可以获得文件libstdc++.so.6.0.15的副本

首先检查所需的版本是否在您的系统上。

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

如果没有列出来,你可以尝试。
    $ sudo add-apt-repository ppa:ubuntu-toolchain-r/test 
    $ sudo apt-get update
    $ sudo apt-get upgrade
    $ sudo apt-get dist-upgrade

可能不需要使用 "sudo apt-get dist-upgrade" 命令。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接