diff --git a/tox.ini b/tox.ini
index fce211f4391..f04e4ae3e89 100644
--- a/tox.ini
+++ b/tox.ini
@@ -4,7 +4,6 @@ skipsdist = True
 envlist = py35,py27,compliance,pep8
 
 [testenv]
-basepython = python3
 setenv = VIRTUAL_ENV={envdir}
          PYTHONWARNINGS=default::DeprecationWarning
          OS_STDOUT_CAPTURE=1
@@ -31,6 +30,7 @@ whitelist_externals =
 passenv = *_proxy *_PROXY
 
 [testenv:api-ref]
+basepython = python3
 whitelist_externals = rm
 deps =
     -c{env:UPPER_CONSTRAINTS_FILE:https://git.openstack.org/cgit/openstack/requirements/plain/upper-constraints.txt}
@@ -40,6 +40,7 @@ commands =
   sphinx-build -W -b html -d api-ref/build/doctrees api-ref/source api-ref/build/html/
 
 [testenv:releasenotes]
+basepython = python3
 deps =
   -c{env:UPPER_CONSTRAINTS_FILE:https://git.openstack.org/cgit/openstack/requirements/plain/upper-constraints.txt}
   -r{toxinidir}/requirements.txt
@@ -61,10 +62,12 @@ setenv =
   {[testenv:functional]setenv}
 
 [testenv:compliance]
+basepython = python3
 setenv =
   OS_TEST_PATH = ./cinder/tests/compliance
 
 [testenv:pep8]
+basepython = python3
 commands =
   python setup.py check --restructuredtext --strict
   flake8 {posargs} .
@@ -72,12 +75,14 @@ commands =
   {toxinidir}/tools/check_exec.py {toxinidir}/cinder {toxinidir}/doc/source/ {toxinidir}/releasenotes/notes
 
 [testenv:fast8]
+basepython = python3
 # Use same environment directory as pep8 env to save space and install time
 envdir = {toxworkdir}/pep8
 commands =
   {toxinidir}/tools/fast8.sh
 
 [testenv:pylint]
+basepython = python3
 deps = -r{toxinidir}/requirements.txt
        pylint==1.9.1
 commands = bash tools/lintstack.sh
@@ -85,6 +90,7 @@ commands = bash tools/lintstack.sh
 [testenv:cover]
 # Also do not run test_coverage_ext tests while gathering coverage as those
 # tests conflict with coverage.
+basepython = python3
 setenv =
     {[testenv]setenv}
     PYTHON=coverage run --source cinder --parallel-mode
@@ -95,23 +101,28 @@ commands =
     coverage xml -o cover/coverage.xml
 
 [testenv:genconfig]
+basepython = python3
 sitepackages = False
 envdir = {toxworkdir}/pep8
 commands = oslo-config-generator --config-file=tools/config/cinder-config-generator.conf
 
 
 [testenv:genpolicy]
+basepython = python3
 commands = oslopolicy-sample-generator --config-file=tools/config/cinder-policy-generator.conf
 
 [testenv:genopts]
+basepython = python3
 sitepackages = False
 envdir = {toxworkdir}/pep8
 commands = python tools/config/generate_cinder_opts.py
 
 [testenv:venv]
+basepython = python3
 commands = {posargs}
 
 [testenv:docs]
+basepython = python3
 deps =
   -c{env:UPPER_CONSTRAINTS_FILE:https://git.openstack.org/cgit/openstack/requirements/plain/upper-constraints.txt}
   -r{toxinidir}/requirements.txt
@@ -125,15 +136,18 @@ commands =
 whitelist_externals = rm
 
 [testenv:gendriverlist]
+basepython = python3
 sitepackages = False
 envdir = {toxworkdir}/venv
 commands = python {toxinidir}/tools/generate_driver_list.py
 
 [testenv:bandit]
+basepython = python3
 deps = -r{toxinidir}/test-requirements.txt
 commands = bandit -r cinder -n5 -x tests -ll
 
 [testenv:bandit-baseline]
+basepython = python3
 envdir = {toxworkdir}/bandit
 commands = bandit-baseline -r cinder -n5 -x tests -ii -ll
 
@@ -144,6 +158,7 @@ commands = bandit-baseline -r cinder -n5 -x tests -ii -ll
 # separately, outside of the requirements files, and develop mode disabled
 # explicitly to avoid unnecessarily installing the checked-out repo too (this
 # further relies on "tox.skipsdist = True" above).
+basepython = python3
 deps = bindep
 commands = bindep test
 usedevelop = False
@@ -164,6 +179,7 @@ local-check-factory = cinder.hacking.checks.factory
 import_exceptions = cinder.i18n
 
 [testenv:lower-constraints]
+basepython = python3
 deps =
   -c{toxinidir}/lower-constraints.txt
   -r{toxinidir}/test-requirements.txt