1

manylinux is a set of special docker containers you can use to build your c extension wheels so that they are compatible with a wide range of (many) linux distributions.

I've gotten it to work for my project but i think I could improve it. manylinux provides various images for various architectures. So effectively there are 3 decisions that have to be made when creating a manylinux build. Which OS do you want an image from? which architecture do you want to use? which version of python do you want to use?

The questions that I have about it directly follow those 3 questions.

Are there any metrics / rules / guidelines I can use to help me decide which OS image I should be using?

If I want to upload my project to pypi should I generate wheel files for other architectures than x86_64?

Do I need to generate wheel files for all of the python versions or just one for lowest supported python version?

sinoroc
  • 18,409
  • 2
  • 39
  • 70
gnarlyninja
  • 177
  • 1
  • 10
  • 3
    Use `cibuildwheel`, it generates wheels for all of them and doesn't require you to make your own wheels, you can just set up a CI flow by configuring it. – Robin De Schepper Jan 17 '23 at 09:14
  • 1
    "*Which OS do you want an image from? which architecture do you want to use? which version of python do you want to use?*" Whatever your users use. If you don't know your users provide as much as possible. For example, I build wheels for Python 2.7 and 3.4+; but I must admit I'm very special and stubborn. :-) – phd Jan 17 '23 at 11:47
  • 1
    "*Do I need to generate wheel files for all of the python versions or just one for lowest supported python version?*" Pure Python or source-only packages can be released for the lowest supported Python version. But binary wheels work only with their respective Python version so you should generate binary wheels for every supported architecture/OS/Python version. – phd Jan 17 '23 at 11:49

0 Answers0