Skip to content

grpcio-status is (marked) incompatible with the newest Protobuf versions #41933

@ferstlf

Description

@ferstlf

What version of gRPC and what language are you using?

grpcio and grpcio-status at 1.78.0, Python

What operating system (Linux, Windows,...) and version?

Linux

What runtime / compiler are you using (e.g. python version or version of gcc)

Python 3.13.12

What did you do?

In a fresh venv, run:

pip install grpcio-status

I then have the following state (output of pipdeptree):

grpcio-status==1.78.0
├── protobuf [required: >=6.31.1,<7.0.0, installed: 6.33.6]
├── grpcio [required: >=1.78.0, installed: 1.78.0]
│   └── typing_extensions [required: ~=4.12, installed: 4.15.0]
└── googleapis-common-protos [required: >=1.5.5, installed: 1.73.0]
    └── protobuf [required: >=3.20.2,<7.0.0,!=4.21.5,!=4.21.4,!=4.21.3,!=4.21.2,!=4.21.1, installed: 6.33.6]

Now try to install a recent version of protobuf:

pip install protobuf==7.34.0

What did you expect to see?

No problem / error

What did you see instead?

ERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts.
grpcio-status 1.78.0 requires protobuf<7.0.0,>=6.31.1, but you have protobuf 7.34.0 which is incompatible.
googleapis-common-protos 1.73.0 requires protobuf!=4.21.1,!=4.21.2,!=4.21.3,!=4.21.4,!=4.21.5,<7.0.0,>=3.20.2, but you have protobuf 7.34.0 which is incompatible.

This version conflict error is caused by the grpcio-status package requiring protobuf<7.0.0

Can that requirement be removed? I assume that grpcio-status works perfectly well with the newest Protobuf version.

Anything else we should know about your project / environment?

In my local venv the install of protobuf==7.34.0 succeeds despite the version conflict error. But in our real environment which uses a requirements.in file and pip-compile this is a hard blocker.

googleapis-common-protos has the same protobuf<7.0.0 requirement in its metadata. I'll file a separate ticket over there.

Metadata

Metadata

Assignees

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions