web-dev-qa-db-fra.com

Erreur dans python après 'import tensorflow': TypeError: __init __ () a obtenu un argument de mot clé inattendu, 'syntax'.

J'ai installé TensorFlow sur ma machine Ubuntu 15.10 comme indiqué pour le processeur uniquement:

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

Puis, lorsque j'exécute le Python REPL et importer tensorflow, je reçois:

$ 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'

J'ai installé le paquet Ubuntu protobuf-compiler et sa version 2.6.1-1.2

36
aneccodeal

Plusieurs utilisateurs ont signalé des problèmes liés à l'installation d'une version plus ancienne de protobuf.

TensorFlow requiert (et utilise une copie de) protobuf-3.0.0a4. Cependant, cela semble en conflit avec votre version installée (peut-être en raison de la configuration de la variable d'environnement PYTHONPATH sur votre système?). Pouvez-vous essayer de désinstaller le python-protobuf package s'il est installé, puis voir si TensorFlow démarre correctement?

Certains utilisateurs ont réussi à utiliser virtualenv. Pour obtenir des instructions sur l’installation de TensorFlow dans virtualenv, reportez-vous à la section Guide de démarrage rapide .

44
mrry

Ce commentaire de github a résolu mon problème.

En bref, vous aurez besoin de protobuf>=3.0 installé pour faire fonctionner tensorflow.

Commencez par désinstaller protobuf, puis pip install 'protobuf>=3.0.0a3'.

Ce n’est pas seulement un problème pour Ubuntu, Mac OS a aussi un problème similaire.

28
feilong

Cela a fonctionné pour moi:

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
24
Philippe Remy

J'avais un problème similaire aujourd'hui. C'est parce que j'avais python 3.7 installé ce qui n'est pas compatible avec tensorflow à compter du 30 juillet 2018. Le passage à la version inférieure à 3.6 A résolu le problème. Publié solution ici si quelqu'un est intéressé.

Suite au problème github a été utile pour résoudre ce problème: https://github.com/tensorflow/tensorflow/issues/17022

5
RC_02

J'ai eu la même erreur lors de l'exécution sur le python version 2.7. Mais tout s'est bien passé quand je l'ai exécuté en utilisant python version 3.

Essayez les commandes suivantes sur le shell bash:

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()

Cela a fonctionné pour moi.

0
Nitin singh