protobuf icon indicating copy to clipboard operation
protobuf copied to clipboard

Missing Linux wheels for protobuf==4.21.x for Python 3.8, 3.9, 3.10?

Open Atheuz opened this issue 2 years ago • 1 comments

What version of protobuf and what language are you using? Version: 4.21.12 Language: Python

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

What runtime / compiler are you using (e.g., python version or gcc version) Python 3.9.16 or Python 3.10.6

What did you do? Steps to reproduce the behavior:

  1. Create a virtualenv: virtualenv .venv --python 3.10.6 (or similar)
  2. Activate virtualenv: source .venv/bin/activate
  3. Install protobuf==4.21.12: pip install protobuf==4.21.12 --no-cache-dir
  4. See that it installs protobuf-4.21.12-cp37-abi3-manylinux2014_x86_64.whl
❯ pip install protobuf==4.21.12 --no-cache-dir
Collecting protobuf==4.21.12
  Downloading protobuf-4.21.12-cp37-abi3-manylinux2014_x86_64.whl (409 kB)
...
Installing collected packages: protobuf
Successfully installed protobuf-4.21.12

What did you expect to see

That it would install a version of protobuf that's not tied to CPython 3.7.

What did you see instead?

It installs a manylinux wheel of Protobuf tied to CPython 3.7 (protobuf-4.21.12-cp37-abi3-manylinux2014_x86_64.whl). This is causing issues for me. Why is there no corresponding manylinux wheel for CPython 3.8, CPython 3.9, CPython 3.10? I see there's a wheel called protobuf-4.21.12-py3-none-any.whl and there are Windows wheels for them, but no such wheels for CPython 3.8, 3.9, 3.10 (See here: https://pypi.org/project/protobuf/4.21.12/#files).

Additionally, if you revert to 3.20.3, you do have wheels for those platforms, like: protobuf-3.20.3-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.whl (See here: https://pypi.org/project/protobuf/3.20.3/#files).

Atheuz avatar Jan 05 '23 11:01 Atheuz

We recently changed the artifacts a bit to use the python limited API which should make that artifact (protobuf-4.21.12-cp37-abi3-manylinux2014_x86_64.whl) compatible with any version of python >= 3.7.

Are you seeing any failures when using newer versions of python with that wheel?

deannagarcia avatar Jan 05 '23 17:01 deannagarcia

@deannagarcia it seems my issue is actually with the upb implementation of the Python packages, in that the python implementation works fine. I'll open a separate issue with that hopefully soon. Thanks for the clarification on why there's no specific wheels for python > 3.7.

Atheuz avatar Jan 07 '23 21:01 Atheuz