How is it not well defined in Python?
For example, let's say there was a new urllib released (its still called urllib). It's now version 2.0, but the stdlib version is 1.0.
If your package said "I need urllib==1.0", it would have know way of understanding that the version was already included within the standard library.
That said, it would download the correct package (assuming it existed) and work just fine.
Other than by introspecting which packages are installed, that is. Most of them will have a VERSION, __version__ or _version attribute which tells you.