在'import tensorflow'之后的python错误:TypeError:__init __()得到了一个意想不到的关键字参数'syntax'

我在Ubuntu 15.10机器上只安装了TensorFlow:

$ pip install https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-0.5.0-cp27-none-linux_x86_64.whl 

然后当我运行Python REPL并导入张量stream时,我得到:

 $ python Python 2.7.10 (default, Oct 14 2015, 16:09:02) [GCC 5.2.1 20151010] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> import tensorflow as tf Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/home/phil/.local/lib/python2.7/site-packages/tensorflow/__init__.py", line 4, in <module> from tensorflow.python import * File "/home/phil/.local/lib/python2.7/site-packages/tensorflow/python/__init__.py", line 13, in <module> from tensorflow.core.framework.graph_pb2 import * File "/home/phil/.local/lib/python2.7/site-packages/tensorflow/core/framework/graph_pb2.py", line 16, in <module> from tensorflow.core.framework import attr_value_pb2 as tensorflow_dot_core_dot_framework_dot_attr__value__pb2 File "/home/phil/.local/lib/python2.7/site-packages/tensorflow/core/framework/attr_value_pb2.py", line 16, in <module> from tensorflow.core.framework import tensor_pb2 as tensorflow_dot_core_dot_framework_dot_tensor__pb2 File "/home/phil/.local/lib/python2.7/site-packages/tensorflow/core/framework/tensor_pb2.py", line 16, in <module> from tensorflow.core.framework import tensor_shape_pb2 as tensorflow_dot_core_dot_framework_dot_tensor__shape__pb2 File "/home/phil/.local/lib/python2.7/site-packages/tensorflow/core/framework/tensor_shape_pb2.py", line 22, in <module> serialized_pb=_b('\n,tensorflow/core/framework/tensor_shape.proto \x12\ntensorflow\"d\n\x10TensorShapeProto\x12-\n\x03\x64im\x18\x02 \x03(\x0b\x32 .tensorflow.TensorShapeProto.Dim\x1a!\n\x03\x44im\x12\x0c\n\x04size\x18\x01 \x01(\x03\x12\x0c\n\x04name\x18\x02 \x01(\tb\x06proto3') TypeError: __init__() got an unexpected keyword argument 'syntax' 

我安装了Ubuntu protobuf-compiler软件包,它的版本是2.6.1-1.2

有几个用户报告说安装了老版本的protobuf时会出现问题。

TensorFlow需要(并使用protobuf-3.0.0a4的副本)。 但是,它似乎与您的安装版本冲突(也许是由于如何在您的系统上配置PYTHONPATH环境变量?)。 你可以尝试卸载python-protobuf包,如果它安装,然后看到如果TensorFlow启动正确?

有些用户在使用virtualenv时已经成功了。 有关将TensorFlow安装到virtualenv的说明,请参阅入门指南 。

这github评论解决了我的问题。

总之,您需要安装protobuf>=3.0才能使tensorflow正常工作。

首先卸载任何你有的protobuf ,然后pip install 'protobuf>=3.0.0a3'

这不仅仅是Ubuntu的问题,Mac OS也有类似的问题。

它为我工作:

 pip uninstall protobuf pip uninstall tensorflow brew uninstall protobuf pip install https://storage.googleapis.com/tensorflow/mac/tensorflow-0.5.0-py2-none-any.whl import google.protobuf >>> print google.protobuf.__version__ 3.0.0a4 >>> import tensorflow 

我在python版本2.7上运行时遇到了同样的错误。 但是当我使用Python版本3运行它时,一切都很顺利。

在bash shell上尝试以下命令:

 python3 Python 3.5.2 (default, Nov 17 2016, 17:05:23) [GCC 5.4.0 20160609] on linux Type "help", "copyright", "credits" or "license" for more information. >>> import tensorflow >>> exit() 

它为我工作。