Python无法在Mac OS X 10.8上导入TensorFlow。

5

我尝试在我的Mac Air上安装TensorFlow(规格:OSX 10.8.4,4GB RAM)。虽然TensorFlow如页面上所述能够干净地安装,我也能够执行$ source bin/activate以获取TensorFlow提示符,但是我无法在Python中导入该包。这是我��到的结果:

    >>> import tensorflow
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/lib/python2.7/site-packages/tensorflow/__init__.py", line 4, in <module>
    from tensorflow.python import *
  File "/usr/local/lib/python2.7/site-packages/tensorflow/python/__init__.py", line 22, in <module>
    from tensorflow.python.client.client_lib import *
  File "/usr/local/lib/python2.7/site-packages/tensorflow/python/client/client_lib.py", line 35, in <module>
    from tensorflow.python.client.session import InteractiveSession
  File "/usr/local/lib/python2.7/site-packages/tensorflow/python/client/session.py", line 11, in <module>
    from tensorflow.python import pywrap_tensorflow as tf_session
  File "/usr/local/lib/python2.7/site-packages/tensorflow/python/pywrap_tensorflow.py", line 28, in <module>
    _pywrap_tensorflow = swig_import_helper()
  File "/usr/local/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: dlopen(/usr/local/lib/python2.7/site-packages/tensorflow/python/_pywrap_tensorflow.so, 2): Symbol not found: ___sincos_stret
  Referenced from: /usr/local/lib/python2.7/site-packages/tensorflow/python/_pywrap_tensorflow.so
  Expected in: /usr/lib/libSystem.B.dylib
 in /usr/local/lib/python2.7/site-packages/tensorflow/python/_pywrap_tensorflow.so

我查看了TensorFlow的常见问题部分,并搜索了上述的ImportError,但到目前为止还没有找到解决方法。我想知道这是否是一个protobuf问题,如在此处所引用的。


1
所以如果你在想是否是protobuf的问题,为什么不尝试安装最新的protobuf呢?同时,也有人遇到了six的问题。建议重新安装这两个包。 - Salvador Dali
1
尝试创建一个虚拟环境并在其中安装TensorFlow。您还可以安装一些好的shell,如ipython,然后导入TensorFlow。 - cutteeth
http://tensorflow.org/get_started/os_setup.md#common_install_problems - Jonah Williams
2个回答

4

问题似乎在于TensorFlow的二进制分发版不兼容Mac OS X 10.8。错误信息的相关部分如下:

Symbol not found: ___sincos_stret

根据多个来源,当在10.8(Mavericks)上使用为新版本Mac OS X编译的二进制文件时,会出现已知问题,因为该操作系统版本的标准库中未定义符号___sincos_stret

要解决此问题,您需要(i)升级到Mac OS X 10.9或更高版本,(ii)按照说明从源代码安装,或(iii)使用Docker


版本控制病: “从源代码安装”说“我们建议使用Homebrew来安装bazel…”;Homebrew说:“需要OS X Yosemite或更高版本的bazel。” - denis

0

我曾经遇到过类似的问题。我使用了Docker Toolbox并成功地运行了TensorFlow。你可以参考我的问题和解决方案。


1
请不要发布(链接到)重复答案。相反,你的问题应该被关闭为此问题的副本 - 特别是因为你的答案基本上是由mrry在这里提供的相同信息。 - Mogsdad

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