On Fri, 18 Jun 2021 at 01:57, Guido van Rossum <guido@python.org> wrote:
I don’t see how the stable ABI works as a substitute for vendoring Python. A lot of other things can still vary even when the C API remains the same! (E.g. syntax, and stdlib behavior.)
IMO it doesn't. However for certain applications (the sort of thing I was referring to) - where the user is writing their own scripts and the embedding API is used merely to expose an interface to the Python language, dynamically linking to whatever version of Python the user has installed can be precisely the right thing to do - the user gets access to the version of the language they expect, the installed packages they expect to see, etc. Consider something like the vim integration with Python (which *doesn't* use the stable ABI, so you have to use a distribution built for precisely the Python version you have installed - the stable ABI would be better from the POV of supporting fewer binary builds). Vendoring is a viable alternative here as well, but as I say, it just has different trade-offs. As I said, it's a niche usage, but it has its place. I don't personally have an opinion on promoting the option of linking to the system Python - it just suits my use cases. Paul