I have a tendency to install one of python 2.x and one of python 3.x and then use the --python flag to set the particular python I want my project to run against.<p>At that point it should work invisibly in the virtualenv.<p>Unlike ruby, point releases don&#x27;t often make sweeping breaking changes so it is often enough to say &#x27;this is python 3 code&#x27; or &#x27;this is python 2 &gt; 2.5&#x27; code, so the granularity of something like pyenv is mostly unnecessary, imo.