I'm not a great Python expert, but I gather there's two kinds of python "module":

1. Modules that's written purely in Python. These tend to be backward compatible.

2. Modules that provide Python interfaces but under the hood are basically C libraries. Because these tend to use implementation details that change over time they tend to be more likely to be version dependent. I gather NumPy is one of these kind of things.