PyCon JP 2024

ロケール設定が保存されました。pretalxでは英語のサポートが充実していると思っていますが、問題やエラーが発生した場合は、ぜひご連絡ください。

The Wheelhouse of Horrors
2024/09/28 , 4F Track4

You might be surprised to learn that, besides naming and cache invalidation problems, building a binary wheel for a Python extension is one of the hardest problems in computer science. Or more precisely, building that binary wheel correctly. Lucky for us, a few amazing community-led projects hide all that complexity from us, so we can instead focus on shipping and using Python code.

This talk will showcase some notable examples of how things can go wrong, while also helping users and maintainers recognise these typical error scenarios. We will learn how to avoid these issues and what users can do when they encounter such issues when using a library.


この題材を選んだ理由やきっかけ

One of CPython's superpowers is its C API which allows us to leverage libraries written in other languages, directly from Python. Many popular Python packages rely on this feature and this is one of the things what makes Python such a great language for many areas, like data science and AI.

However, this functionality hides a surprising amount of complexity behind the covers and this means that when things go wrong, it can be very challenging to resolve or even understand what went wrong, which is why I believe it is so common to see questions around package installation problems in Python communities.

I have been working in this space for many years and I feel that equipping users and library maintainers with useful tips and knowledge around Python native extensions can make a big difference in making it easier to troubleshoot and avoid such issues.

オーディエンスが持って帰れる具体的な知識やノウハウ
  • What are Python binary wheels and why are they useful. The audience should be able to glance at the file name of a Python platform wheel and know what platform, Python version, etc. it will be compatible with.
  • Learn about the manylinux specification and its role in ensuring widely-compatible wheels.
  • Practical examples of typical issues when installing platforms wheels and tips on identifying and resolving such issues.
  • Tools for Python maintainers which take all the guesswork out of building and tagging wheels correctly.
オーディエンスに求める前提知識

Basic knowledge of the Python programming language and the Linux operating system. Some experience using package managers like pip. Familiarity with linking and compiling C/C++ applications can be helpful, but isn't necessarily to follow along.

オーディエンスの経験レベル

Intermediate

発表の言語

English

発表資料の言語

English

Laszlo leads the Python Infrastructure team at Bloomberg in London. He has been working on solving difficult Python packaging problems since 2018 and is a maintainer and contributor of several Python packaging tools, like auditwheel and manylinux.