pipdeptree looks like a good package and utility to keep on our system. Here is a quick sample output (many lines are removed):

$ pipdeptree
pies2overrides==2.0.0/g
  - ipaddress [installed: 1.0.6]
enum34==0.9.19
urtimer==0.5.1
  - distribute
  - urwid [installed: 1.1.1]
isort==2.5.0
  - pies [required: >=2.0.0, installed: 2.0.0]
    - pies2overrides [installed: 2.0.0]
      - ipaddress [installed: 1.0.6]
    - enum34 [installed: 0.9.19]
  - natsort [required: >=3.0.0, installed: 3.0.2]
gdata==2.0.14
googlecl==0.9.13
  - gdata [required: >=1.2.4, installed: 2.0.14]

You can clearly see what are depended by which packages and the installed versions plus requirement comparisons or conditions. It can also work with virtualenv.

It’s a new package, only version 0.2 as of writing, it might be helpful to troubleshoot dependency issue, not that I am aware of, but it provides a clearer view of the relationships between packages. In other words: how messy is your Python site directories.

This makes me want to have something like emerge --depclean -v <pkg> or pip, some options for safe deep clean. With pipdeptree, it’s like having manual -v. You could check the tree by yourself.

But, most likely, it’s you see the ImportError and either uninstalling more packages or re-installing the ones you just uninstalled. Nonetheless, I still feel Python’s package management is totally fine, at least much better than other I currently use on my system if I don’t rely on Gentoo’s managements.