Module dependency
At the very beginning of this book, we argue that one of the advantages of using Python is that it is a rich source of hundreds of special packages called modules. To avoid duplicated efforts and to save time in developing new modules, later modules choose to use functions developed on early modules; that is, they depend on early modules.
The advantage is obvious because developers could save lots of time and effort when building and testing a new module. However, one disadvantage is that installation becomes difficult.
There are two competing approaches. The first approach is to bundle everything together and make sure that all parts play together nicely, thus avoiding the pain of installing n packages independently. This is wonderful assuming that it works. A potential issue is that the updating of individual modules might not be reflected in the super package. The second approach is to use minimal dependencies. It causes fewer headaches for the package maintainer, but...