zooko wrote:
Yes, if you used symbols from any shared library in an extension module, you'd need to know the version of that shared library. So it's not just libc. This is the same on any OS, not just linux.
Wait a minute, an extension module built into the Python Standard Library, you mean?
No, I'm writing about non stdlib extension modules. Because for separately packaged packages
("distributions") such as the numpy that you mentioned, your package ("distribution") would express its requirement on that other package ("distribution") in its install_requires metadata, not in its name. There, in the install_requires metadata, it can also express which version it requires. Right?
No, because the act of compiling your .egg fixes the specific version (e.g. numpy==1.3) to keep the ABI compatible with the version of numpy installed at extension module compile time. Whereas the install_requires is about API compatibility, and could thus be numpy>=1.2, for example. (For pure Python modules, this isn't a problem because there is only an API version to worry about. But with compiled extensions, there is also the ABI version to worry about.)