I usually use pyenv to manage my Python interpreters and obtain them in whatever version I need. Another tool I occasionally use is tox by Holger Krekel, which nicely generates build matrices for library and python interpreter versions, that come handy when you develop a library targeting multiple Python versions (and dependencies).
However, until recently I didn't know how to use the two of them together. With pyenv, I usually ended up with one python interpreter in my path, so tox had only one interpreter to choose from, and I was missing out on tox' selling point: testing your code over various versions of Python.
Install Multiple Python Version With Pyenv
Setting up your pyenv usually looks like this:
% pyenv install 3.5.1 % pyenv install 2.7.10 % cd my_project_dir % pyenv local 3.5.1
Now it is possible to use multiple Python versions here:
% pyenv local 3.5.1 2.7.10 % python3.5 --version Python 3.5.1 % python2.7 --version Python 2.7.10
Then, tox can find interpreters, typically you will have a tox.ini in your project that starts with something like this:
[tox]envlist=py27,py34,py35skip_missing_interpreters=True[testenv]commands=py.testdeps=-rrequirements.txt
Invoking tox should now run tox with the two available Python versions, 2.7 and 3.5, skipping 3.4 unless it is installed.