'import tensorflow'后python出错:TypeError:__ init __()得到一个意外的关键字参数'syntax'

ane*_*eal 36 ubuntu tensorflow

我按照CPU的指示在我的Ubuntu 15.10机器上安装了TensorFlow:

$ pip install https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-0.5.0-cp27-none-linux_x86_64.whl
Run Code Online (Sandbox Code Playgroud)

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

$ 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'
Run Code Online (Sandbox Code Playgroud)

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

mrr*_*rry 44

有几个用户报告了安装旧版protobuf时出现的问题.

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

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

  • 我还需要在OS X上'brew uninstall protobuf'. (10认同)
  • 我错误地使用brew安装..我也不得不做`brew uninstall protobuf` (9认同)
  • 好吧,我也必须'pip uninstall protobuf'.然后我重新安装了tensorflow(通过pip),重新启动了REPL,这很好,谢谢. (5认同)

fei*_*ong 28

这个github评论解决了我的问题.

简而言之,您需要protobuf>=3.0安装才能使tensorflow工作.

首先卸载protobuf你所拥有的,然后pip install 'protobuf>=3.0.0a3'.

这不仅仅是Ubuntu的一个问题,Mac OS也有类似的问题.

  • 确认的OSX有相同的错误,因为大多数人将安装的brew版本仍为2.6.1 (4认同)

Phi*_*emy 24

它对我有用:

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
Run Code Online (Sandbox Code Playgroud)


RC_*_*_02 5

我今天遇到了类似的问题.这是因为我安装了python 3.7,它与2018年7月30日的tensorflow不兼容.降级以3.6解决问题.如果有人有兴趣在这里发布解决方案

在解决此问题时,遵循github问题很有帮助:https://github.com/tensorflow/tensorflow/issues/17022