The setup.py approach that loosely couple dependencies is definitely useful as the author describes.
However I think important advice to library developers that's missing in the article is to be explicit (somewhere, likely in documentation) about the version/source of each dependency that the library has been tested against.
Libraries are distributed, applications are deployed.