I would like to revive this 5 year old thread and see if we can stir things up a bit. Basically the problem is that, in the current state of the PEPs and build tools, it is still not possible to build and distribute a Windows wheel that includes an extension module compiled with Py_LIMITED_API. Setuptools can successfully build such extension module on Windows (with `.pyd` file extension and no extra specifiers in the module filename), and these seems to work at least on CPython 3.5 and above. However the `--py-limited-api cpXX` option of bdist_wheel command fails on Windows because it attempts to use the `abi3` tag but the latter is not in the list of compatible tags for that platform. One can work around this by creating a wheel with `none` as the abi tag, and `cp35.cp36.cp37` as the python implementation tag but this feels a bit hackish. Here are some unresolved questions from the old distutils-sig thread, quoting Paul Moore:
2. How should tools determine which ABIs a given Python supports? (This is the get_supported function in wheel and distlib). The "Use" section of the PEP (http://www.python.org/dev/peps/pep-0425/#id1) gives a Linux-based example, but nothing normative and nothing that is understandable to a Windows user.
And from Vinay Sajip
For Windows, we (eventually) need some low-level sysconfig-supported way to get the ABI information in an analogous way to how it happens on POSIX: and because that's not currently there, distlib doesn't provide any ABI information on Windows other than "none".
Other related links: https://github.com/pypa/pip/issues/4445 https://mail.python.org/pipermail/distutils-sig/2018-January/031856.html So.. what needs to be done here to allow distributing/installing Windows wheels with Py_LIMITED_API support? Thank you, Cosimo Lupo -- Cosimo Lupo