Skip to content

Unable to import tfds with tensorflow 2.12 #4858

Closed
@rivershah

Description

@rivershah

Short description
Unable to import tfds

Environment information

  • Operating System:

  • Python version:

  • tensorflow-datasets/tfds-nightly version: tensorflow-datasets==4.9.1

  • tensorflow/tf-nightly version: tensorflow==2.12.0

  • Does the issue still exists with the last tfds-nightly package (pip install --upgrade tfds-nightly) ?

Reproduction instructions

python
Python 3.11.3 (main, Apr  5 2023, 14:15:06) [GCC 9.4.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import tensorflow_datasets as tfds
Traceback (most recent call last):
  File "/usr/local/lib/python3.11/dist-packages/tensorflow_datasets/proto/__init__.py", line 20, in <module>
    from waymo_open_dataset import dataset_pb2 as waymo_dataset_pb2
ModuleNotFoundError: No module named 'waymo_open_dataset'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/lib/python3.11/dist-packages/tensorflow_datasets/__init__.py", line 43, in <module>
    import tensorflow_datasets.core.logging as _tfds_logging
  File "/usr/local/lib/python3.11/dist-packages/tensorflow_datasets/core/__init__.py", line 22, in <module>
    from tensorflow_datasets.core import community
  File "/usr/local/lib/python3.11/dist-packages/tensorflow_datasets/core/community/__init__.py", line 18, in <module>
    from tensorflow_datasets.core.community.huggingface_wrapper import mock_builtin_to_use_gfile
  File "/usr/local/lib/python3.11/dist-packages/tensorflow_datasets/core/community/huggingface_wrapper.py", line 31, in <module>
    from tensorflow_datasets.core import dataset_builder
  File "/usr/local/lib/python3.11/dist-packages/tensorflow_datasets/core/dataset_builder.py", line 34, in <module>
    from tensorflow_datasets.core import dataset_info
  File "/usr/local/lib/python3.11/dist-packages/tensorflow_datasets/core/dataset_info.py", line 52, in <module>
    from tensorflow_datasets.core.features import feature as feature_lib
  File "/usr/local/lib/python3.11/dist-packages/tensorflow_datasets/core/features/__init__.py", line 26, in <module>
    from tensorflow_datasets.core.features.dataset_feature import Dataset
  File "/usr/local/lib/python3.11/dist-packages/tensorflow_datasets/core/features/dataset_feature.py", line 23, in <module>
    from tensorflow_datasets.core.features import sequence_feature
  File "/usr/local/lib/python3.11/dist-packages/tensorflow_datasets/core/features/sequence_feature.py", line 25, in <module>
    from tensorflow_datasets.core.features import features_dict
  File "/usr/local/lib/python3.11/dist-packages/tensorflow_datasets/core/features/features_dict.py", line 26, in <module>
    from tensorflow_datasets.core.features import top_level_feature
  File "/usr/local/lib/python3.11/dist-packages/tensorflow_datasets/core/features/top_level_feature.py", line 24, in <module>
    from tensorflow_datasets.core import example_parser
  File "/usr/local/lib/python3.11/dist-packages/tensorflow_datasets/core/example_parser.py", line 30, in <module>
    from tensorflow_datasets.proto import tf_example_pb2
  File "/usr/local/lib/python3.11/dist-packages/tensorflow_datasets/proto/__init__.py", line 23, in <module>
    from tensorflow_datasets.proto import waymo_dataset_generated_pb2 as waymo_dataset_pb2  # pylint: disable=line-too-long
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/dist-packages/tensorflow_datasets/proto/waymo_dataset_generated_pb2.py", line 130, in <module>
    _descriptor.EnumValueDescriptor(
  File "/usr/local/lib/python3.11/dist-packages/google/protobuf/descriptor.py", line 796, 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

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions