We will now take a trip down memory lane; specifically, the author is going to curl up into a ball for a couple of hours while he recalls hours of yelling at servers for being dumb.
Dependency hell is the notion that a package can have dependencies on things that either conflict with other versions of dependent packages or libraries that you have installed, or can try to use incompatible versions, for whatever reason.
In the case of Python and Pip, we've already discussed the concept of virtualenv, but historically, this has also been a problem in other package managers, too. RPM-based distributions are notorious for these issues, developing the term RPM Hell to specifically reference their problems.
You can also get into a situation where there are a few options for dependencies when installing software; programs like Apt attempt to mitigate...