Windows Stable ABI Support
See original GitHub issue- Pip version: 9.0.1
- Python version: Any py3
- Operating system: Windows
Description:
I’d like to be able to use the stable ABI to lessen the burden of distributing wheels. pip 9 supports this on macOS, but on Windows it does not. The stable ABI is a bit less useful on Windows due to CRT issues, but with the changes to CRT linking in Python 3.5 and above it seems like it should be possible to do a single stable ABI build that works with Python 3.5+? I am only a Windows Python user to the extent required by the build infrastructure for PyCA projects so hopefully someone more knowledgeable can help out here 😄
Assuming the stable ABI should be supported on Windows then we can start digging into the problem. It turns out that pep425tags.get_supported()
doesn’t show abi3 as a supported tag on Windows. The implementation uses imp.get_suffixes()
and on Windows this does not return anything with abi3
in it. Setuptools uses a function get_abi3_suffix that keys on pyd
in Windows, but it’s unclear to me if this is the correct behavior. Is there a more correct way to detect support for stable ABI on Python 3 in Windows?
(Aside: It’d be nice if pep425tags
had a canonical single repo that is then vendored by pip/wheel rather than being divergent modules)
Issue Analytics
- State:
- Created 6 years ago
- Comments:27 (18 by maintainers)
@zooba Ok so if
#define Py_LIMITED_ABI
is in the extension code, then it should already be linking againstpython3.dll
?The pip part of this was resolved for #7327 in #7367, essentially we now just use a plain “abi3” when installing for a supported version of CPython. I will close this now but if there’s still any pip-specific action indicated, please say so!