I love pyenv. Brew is excellent for establishing a decent baseline, but pyenv is good for "we've tested this service to run under 3.5.7 and this one to run under 3.6.2, so I want to develop locally with those exact versions without them being upgraded from beneath me". And when upgrade, running "pyenv local 3.6.3" is almost all that's required to start working with the new one.