TypeError: Descriptors cannot not be created directly.

 2023-10-19 10:01:41.895250: W tensorflow/stream_executor/platform/default/dso_loader.cc:64] Could not load dynamic library 'libcudart.so.11.0'; dlerror: libcudart.so.11.0: cannot open shared object file: No such file or directory

2023-10-19 10:01:41.895278: I tensorflow/stream_executor/cuda/cudart_stub.cc:29] Ignore above cudart dlerror if you do not have a GPU set up on your machine.

Traceback (most recent call last):

  File "t01.py", line 7, in <module>

    import tensorflow.compat.v2 as tf

  File "/home/parklize/Documents/code/tfp/venv/lib/python3.8/site-packages/tensorflow/__init__.py", line 37, in <module>

    from tensorflow.python.tools import module_util as _module_util

  File "/home/parklize/Documents/code/tfp/venv/lib/python3.8/site-packages/tensorflow/python/__init__.py", line 37, in <module>

    from tensorflow.python.eager import context

  File "/home/parklize/Documents/code/tfp/venv/lib/python3.8/site-packages/tensorflow/python/eager/context.py", line 29, in <module>

    from tensorflow.core.framework import function_pb2

  File "/home/parklize/Documents/code/tfp/venv/lib/python3.8/site-packages/tensorflow/core/framework/function_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/parklize/Documents/code/tfp/venv/lib/python3.8/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/parklize/Documents/code/tfp/venv/lib/python3.8/site-packages/tensorflow/core/framework/tensor_pb2.py", line 16, in <module>

    from tensorflow.core.framework import resource_handle_pb2 as tensorflow_dot_core_dot_framework_dot_resource__handle__pb2

  File "/home/parklize/Documents/code/tfp/venv/lib/python3.8/site-packages/tensorflow/core/framework/resource_handle_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/parklize/Documents/code/tfp/venv/lib/python3.8/site-packages/tensorflow/core/framework/tensor_shape_pb2.py", line 36, in <module>

    _descriptor.FieldDescriptor(

  File "/home/parklize/Documents/code/tfp/venv/lib/python3.8/site-packages/google/protobuf/descriptor.py", line 561, in __new__

    _message.Message._CheckCalledFromGeneratedFile()

TypeError: Descriptors cannot not be created directly.

If this call came from a _pb2.py file, your generated code is out of date and must be regenerated with protoc >= 3.19.0.

If you cannot immediately regenerate your protos, some other possible workarounds are:

 1. Downgrade the protobuf package to 3.20.x or lower.

 2. Set PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION=python (but this will use pure-Python parsing and will be much slower).


More information: https://developers.google.com/protocol-buffers/docs/news/2022-05-06#python-updates

=======================================
To solve the issue, I needed to downgrade protobuf using pip
$ pip install protobuf==3.20.*

Note: the * above is not to be taken literally, it's called a "wildcard". You put your own number in there as needed, as in 3.20.1, 3.20.5, etc. See https://stackoverflow.com/questions/72899948/how-to-downgrade-protobuf for details.

No comments:

Post a Comment