protobuf
protobuf copied to clipboard
Missing Linux wheels for protobuf==4.21.x for Python 3.8, 3.9, 3.10?
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:
- Create a virtualenv:
virtualenv .venv --python 3.10.6
(or similar) - Activate virtualenv:
source .venv/bin/activate
- Install protobuf==4.21.12:
pip install protobuf==4.21.12 --no-cache-dir
- 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).
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 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.