I've recently had great success at work in switching from virtualenv to pyenv + pyenv-virtualenv. It makes it much easier to reason about your Python installations and it helps in keeping the system Python (MacOS) from interfering.
What problems did it solve exactly? I have enough experience with virtualenv. I occasionally encounter problems but its usually with non-python parts of the libraries. What does pyenv do differently?
It isn't necessarily about solving a problem that we had with virtualenv. For us it was already working quite well. It just simplified a few things for us. Like isolating Python versions, and also made the process of downloading and installing multiple Python versions easier.