- cross-posted to:
- [email protected]
So if I’m using pip with PyPI, am I already getting the benefits of wheels? Or is there something I’m missing.
Sorry for the stupid question, I’m just not sure what the impacts of wheels are.
Wheels is something you use when packaging your module for upload. You will automatically use a wheel package if the module you are downloading was uploaded using wheels and your pc config is compatible with the wheel package.
What wheels does is it pre builds the module for a given system (doesn’t need to be a very specific system) so that you don’t have to do it locally when installing (if you got a compatible config).
It’s not something users have to think about, for them wheel package == smaller and faster install. Pip will by default prioritise wheel package over source.
Oh okay awesome! So I’m probably already benefitting from this. Thanks for the explanation!
Yes, I believe wheels will generally be preferred by
pip
.Awesome, well then I’m glad to hear that so many people are uploading wheels!
I’m a noob and I don’t really understand what the impacts will be. Maybe it’ll increase speeds? I think that’s what it was getting at
The installed packages themselves won’t be faster, but they will install faster, sometimes much faster.
And the reason is because you don’t need to (automatically, given) download the tools to compile the package - wheels are precompiled packages for your system.
deleted by creator
Shipping binaries is a double-edged sword. On one hand it’s fast and simple, on the other hand you rely on the vendor to do it right. Confluent doesn’t ship binaries built on musl, Microsoft doesn’t ship binaries for arm64 (and has often failed to make it obvious, so the binary will install, but not work), nobody ships binaries for armv7.
Having this double world is a bit painful. Especially that once it’s shipped as a binary, the vendor doesn’t care very much about source distributions, so there’s missing instructions, bad documentation (like how to install on alpine, and that you need librdkafka of the same version as the python package for confluent-kafka), and just a whole world where a junior or even mid level developer will get lost.
I think that there needs to be more focus on delivering good source distributions, with everything included, since publishers don’t keep up with the variety of target platforms. And building from source is quite often fast, since machines are fast.