Yes, static languages have dependency hell. I've ./configure'd a million times and have wanted to die about 80% of the time. I've used buildroot and have wanted to die 100% of the time. I never seriously programmed in C or C++ to say that I've stopped using them, so while they're broken... you can't stop using something that you haven't started using. (I still cringe when I see that some C-based project I want to use doesn't have binaries. It's especially annoying because I mostly use Windows now. I want "dc" in Powershell because that is my preferred calculator app... but can't compile it, and apparently neither can anyone else. Wow.)
Python is a pretty great programming language... but it's just not worth the tradeoffs. It is nice that bottle is one file; that is going to increase its adoption. It is not a solution to any general problem, though; the next library you depend on is going to require virtualenv and 100 dependencies, and they will fail to install.
Having said that, I do find the situation with Python/PIP/PyPI today is far better than a few years ago, especially concerning binary packages and the Python2/Python3 divide.
I'm not experiencing a substantial quality difference between pip and npm, at the same time I prefer venv over node_modules (while detesting both).
Single file dependencies are getting more and more popular because integrating with build systems is a major pain, particularly in static languages like C and C++, but also in the mess that is modern Javascript.
Some languages do manage to do this better than others, but the type system has nothing to do with it.
Lastly, having one single statically-linked binary isn't the norm even for static languages.