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,py35 skip_missing_interpreters = True [testenv] commands = py.test deps = -rrequirements.txt