Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Error running cromshell due to incompatible protobuf version #258

Open
bshifaw opened this issue May 2, 2023 · 0 comments
Open

Error running cromshell due to incompatible protobuf version #258

bshifaw opened this issue May 2, 2023 · 0 comments

Comments

@bshifaw
Copy link
Collaborator

bshifaw commented May 2, 2023

Description: When running cromshell, the following error occurs: "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." The error message suggests that the issue may be due to an incompatible version of the protobuf package.

Steps to reproduce:

Install cromshell via PYPI.
Run cromshell in a terminal or command prompt.
Observe the "Descriptors cannot not be created directly" error.
Expected behavior: cromshell should run without errors.

Suggested solution:
Temporary solution: Updating the google-api-core package seemed to work pip install --upgrade google-api-core
Long-term solution: Could add the google-api-core package requirement for cromshell to "google-api-core>=2.11"

$ cromshell
Please update the cromwell server in the following config file /home/jupyter/.cromshell/cromshell_config.json
Traceback (most recent call last):
  File "/home/jupyter/.local/bin/cromshell", line 5, in <module>
    from cromshell.__main__ import main_entry
  File "/home/jupyter/.local/lib/python3.7/site-packages/cromshell/__main__.py", line 11, in <module>
    from .cost import command as cost
  File "/home/jupyter/.local/lib/python3.7/site-packages/cromshell/cost/command.py", line 6, in <module>
    from google.cloud import bigquery
  File "/home/jupyter/.local/lib/python3.7/site-packages/google/cloud/bigquery/__init__.py", line 35, in <module>
    from google.cloud.bigquery.client import Client
  File "/home/jupyter/.local/lib/python3.7/site-packages/google/cloud/bigquery/client.py", line 60, in <module>
    import google.api_core.exceptions as core_exceptions
  File "/opt/conda/lib/python3.7/site-packages/google/api_core/exceptions.py", line 29, in <module>
    from google.rpc import error_details_pb2
  File "/opt/conda/lib/python3.7/site-packages/google/rpc/error_details_pb2.py", line 69, in <module>
    create_key=_descriptor._internal_create_key,
  File "/home/jupyter/.local/lib/python3.7/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
@bshifaw bshifaw changed the title Error creating descriptor in cromshell due to incompatible protobuf version Error running cromshell due to incompatible protobuf version May 2, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant