cannot import name 'resource_handle_pb2'这个要怎么样解决呢?

cannot import name 'resource_handle_pb2'这个要怎么样解决呢?

问题描述:

D:\Anaconda\envs\tensorflow\python.exe D:/desk/bert-master/bert-master/run_pretraining.py
Traceback (most recent call last):
  File "D:/desk/bert-master/bert-master/run_pretraining.py", line 22, in <module>
    import modeling
  File "D:\desk\bert-master\bert-master\modeling.py", line 28, in <module>
    import tensorflow as tf
  File "D:\Anaconda\envs\tensorflow\lib\site-packages\tensorflow\__init__.py", line 28, in <module>
    from tensorflow.python import pywrap_tensorflow  # pylint: disable=unused-import
  File "D:\Anaconda\envs\tensorflow\lib\site-packages\tensorflow\python\__init__.py", line 52, in <module>
    from tensorflow.core.framework.graph_pb2 import *
  File "D:\Anaconda\envs\tensorflow\lib\site-packages\tensorflow\core\framework\graph_pb2.py", line 16, in <module>
    from tensorflow.core.framework import node_def_pb2 as tensorflow_dot_core_dot_framework_dot_node__def__pb2
  File "D:\Anaconda\envs\tensorflow\lib\site-packages\tensorflow\core\framework\node_def_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 "D:\Anaconda\envs\tensorflow\lib\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 "D:\Anaconda\envs\tensorflow\lib\site-packages\tensorflow\core\framework\tensor_pb2.py", line 15, in <module>
    from tensorflow.core.framework import resource_handle_pb2 as tensorflow_dot_core_dot_framework_dot_resource__handle__pb2
ImportError: cannot import name 'resource_handle_pb2

from tensorflow.core.framework import resource_handle_pb2 as tensorflow_dot_core_dot_framework_dot_resource__handle__pb2
from tensorflow.core.framework import tensor_shape_pb2 as tensorflow_dot_core_dot_framework_dot_tensor__shape__pb2
from tensorflow.core.framework import types_pb2 as tensorflow_dot_core_dot_framework_dot_types__pb2

'

This is because of protobuf version conflict: for me i had python-protobuf v2.6.1 installed from apt-get package manager and while installing tensorflow it installed protobuf v3.3.0 from pip manager

To check version of protobuf from aptitude

aptitude versions python-protobuf

To check version of protobuf from pip

pip show protobuf

so i uninstalled both:

sudo pip uninstall protobuf
sudo apt-get remove python-protobuf

Reinstalled using pip and it solved the issue!!!

sudo pip install protobuf

Hope this helps..