Repository navigation
pip install does not use wheel, probably mangled filenames #221
Copy link
Copy link
Open
Description
Wheels appear to be available, but it looks like the non-musl ones have mangled filenames:
$ elinks -dump -no-numbering -no-references \
https://pypi.org/simple/evdev-binary/ \
| grep evdev_binary- \
| awk '{print $1}' \
| sort -V
evdev_binary-1.7.1-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_28_x86_64.whl
evdev_binary-1.7.1-cp37-cp37m-musllinux_1_1_x86_64.whl
evdev_binary-1.7.1-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_28_x86_64.whl
evdev_binary-1.7.1-cp38-cp38-musllinux_1_1_x86_64.whl
evdev_binary-1.7.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_28_x86_64.whl
evdev_binary-1.7.1-cp39-cp39-musllinux_1_1_x86_64.whl
evdev_binary-1.7.1-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_28_x86_64.whl
evdev_binary-1.7.1-cp310-cp310-musllinux_1_1_x86_64.whl
evdev_binary-1.7.1-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_28_x86_64.whl
evdev_binary-1.7.1-cp311-cp311-musllinux_1_1_x86_64.whl
evdev_binary-1.7.1-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_28_x86_64.whl
evdev_binary-1.7.1-cp312-cp312-musllinux_1_1_x86_64.whl
evdev_binary-1.7.1-pp37-pypy37_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_28_x86_64.whl
evdev_binary-1.7.1-pp38-pypy38_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_28_x86_64.whl
evdev_binary-1.7.1-pp39-pypy39_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_28_x86_64.whl
evdev_binary-1.7.1-pp310-pypy310_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_28_x86_64.whl
My pip would match, for example either variation that appears to be indicated above:
$ pip3.12 debug -v | grep cp312-cp312-manylinux | grep -e _2_5_ -e _2_28_
cp312-cp312-manylinux_2_28_x86_64
cp312-cp312-manylinux_2_5_x86_64
yet it insists on doing a source build, and if forced claims there's nothing available:
$ pip3 install --user --only-binary :all: evdev
ERROR: Could not find a version that satisfies the requirement evdev (from versions: none)
ERROR: No matching distribution found for evdev
Manual download and install works fine:
$ curl -so evdev_binary-1.7.1-cp312-cp312-manylinux_2_28_x86_64.whl $(
elinks -dump -no-numbering https://pypi.org/simple/evdev-binary/ \
| grep 'https.*cp312-cp312.*many' \
| awk '{print $NF}'
)
$ file -i *.whl
evdev_binary-1.7.1-cp312-cp312-manylinux_2_28_x86_64.whl: application/zip; charset=binary
$ pip3 install --user *.whl
Processing ./evdev_binary-1.7.1-cp312-cp312-manylinux_2_28_x86_64.whl
Installing collected packages: evdev-binary
Successfully installed evdev-binary-1.7.1
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels
Activity
smemsh commentedon Aug 7, 2024
Note, above workaround installs it as
evdev-binarypackage, notevdev:which means dependencies like
evdev>=1.3are not being satisfied by this installation.gvalkov commentedon Feb 2, 2025
Hi. That is intentional. You need to install
evdevorevdev-binaryand there is indeed no way forevdev-binaryto satisfyevdevas a pip requirement. Using optional dependencies (i.e.evdev[binary]) would have been nice, but it's not possible, since that "main" (i.e.evdev) dependency is also installed.I'll leave this open in case someone comes up with a good way to solve it.
smemsh commentedon Feb 2, 2025
Ok, I understand the workaround not working, but what about the mangled filenames? It would just install the wheel on its own without need of workaround if the filenames were correct, right?