this post was submitted on 12 Aug 2023
36 points (100.0% liked)
Python
6400 readers
16 users here now
Welcome to the Python community on the programming.dev Lemmy instance!
📅 Events
Past
November 2023
- PyCon Ireland 2023, 11-12th
- PyData Tel Aviv 2023 14th
October 2023
- PyConES Canarias 2023, 6-8th
- DjangoCon US 2023, 16-20th (!django 💬)
July 2023
- PyDelhi Meetup, 2nd
- PyCon Israel, 4-5th
- DFW Pythoneers, 6th
- Django Girls Abraka, 6-7th
- SciPy 2023 10-16th, Austin
- IndyPy, 11th
- Leipzig Python User Group, 11th
- Austin Python, 12th
- EuroPython 2023, 17-23rd
- Austin Python: Evening of Coding, 18th
- PyHEP.dev 2023 - "Python in HEP" Developer's Workshop, 25th
August 2023
- PyLadies Dublin, 15th
- EuroSciPy 2023, 14-18th
September 2023
- PyData Amsterdam, 14-16th
- PyCon UK, 22nd - 25th
🐍 Python project:
- Python
- Documentation
- News & Blog
- Python Planet blog aggregator
💓 Python Community:
- #python IRC for general questions
- #python-dev IRC for CPython developers
- PySlackers Slack channel
- Python Discord server
- Python Weekly newsletters
- Mailing lists
- Forum
✨ Python Ecosystem:
🌌 Fediverse
Communities
- #python on Mastodon
- c/django on programming.dev
- c/pythorhead on lemmy.dbzer0.com
Projects
- Pythörhead: a Python library for interacting with Lemmy
- Plemmy: a Python package for accessing the Lemmy API
- pylemmy pylemmy enables simple access to Lemmy's API with Python
- mastodon.py, a Python wrapper for the Mastodon API
Feeds
founded 1 year ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
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.
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.