diff --git a/tox.ini b/tox.ini
index 2d1353296..c6ce87aa0 100644
--- a/tox.ini
+++ b/tox.ini
@@ -3,7 +3,6 @@ minversion = 2.0
 envlist = py35,py27,pep8,bandit
 
 [testenv]
-basepython = python3
 setenv =
     VIRTUAL_ENV={envdir}
 passenv = OS_*
@@ -16,22 +15,22 @@ deps =
   -r{toxinidir}/requirements.txt
 commands = python setup.py testr --slowest --testr-args='{posargs}'
 
-[testenv:py27]
-basepython = python2.7
-
 [testenv:pep8]
+basepython = python3
 commands = flake8
 deps = hacking<0.11,>=0.10.0
 
 [testenv:cover]
+basepython = python3
 commands =
   python setup.py test --coverage --coverage-package-name=oslo_messaging --testr-args='{posargs}'
 
 [testenv:venv]
+basepython = python3
 commands = {posargs}
 
 [testenv:docs]
-basepython = python2.7
+basepython = python3
 deps = -r{toxinidir}/doc/requirements.txt
 commands = sphinx-build -W -b html doc/source doc/build/html
 
@@ -43,6 +42,7 @@ setenv =
 commands = pifpaf run rabbitmq --  python setup.py testr --slowest --testr-args='{posargs:oslo_messaging.tests.functional}'
 
 [testenv:py35-func-rabbit]
+basepython = python3.5
 setenv =
     {[testenv]setenv}
     TRANSPORT_DRIVER=rabbit
@@ -67,6 +67,7 @@ setenv =
 commands = {toxinidir}/tools/setup-test-env-amqp1.sh python setup.py testr --slowest --testr-args='{posargs:oslo_messaging.tests.functional}'
 
 [testenv:py35-func-amqp1]
+basepython = python3.5
 setenv =
     {[testenv]setenv}
     TRANSPORT_URL=amqp://stackqpid:secretqpid@127.0.0.1:65123//
@@ -76,6 +77,7 @@ setenv =
 commands = {toxinidir}/tools/setup-test-env-amqp1.sh python setup.py testr --slowest --testr-args='{posargs:oslo_messaging.tests.functional}'
 
 [testenv:py35-func-kafka]
+basepython = python3.5
 setenv =
     {[testenv]setenv}
     TRANSPORT_URL=kafka://127.0.0.1:9092/
@@ -87,6 +89,7 @@ basepython = python2.7
 commands = {toxinidir}/setup-test-env-zmq.sh python setup.py testr --slowest --testr-args='{posargs:oslo_messaging.tests.functional}'
 
 [testenv:py35-func-zmq]
+basepython = python3.5
 commands = {toxinidir}/setup-test-env-zmq.sh python setup.py testr --slowest --testr-args='{posargs:oslo_messaging.tests.functional}'
 
 [testenv:py27-func-zmq-dyn]
@@ -102,6 +105,7 @@ basepython = python2.7
 commands = {toxinidir}/setup-test-env-zmq-pub-sub.sh python setup.py testr --slowest --testr-args='{posargs:oslo_messaging.tests.functional}'
 
 [testenv:bandit]
+basepython = python3
 deps =
   -c{env:UPPER_CONSTRAINTS_FILE:https://git.openstack.org/cgit/openstack/requirements/plain/upper-constraints.txt}
   -r{toxinidir}/test-requirements.txt
@@ -121,14 +125,17 @@ import_exceptions =
 local-check-factory = oslo_messaging.hacking.checks.factory
 
 [testenv:releasenotes]
+basepython = python3
 commands = sphinx-build -a -E -W -d releasenotes/build/doctrees -b html releasenotes/source releasenotes/build/html
 deps = -r{toxinidir}/doc/requirements.txt
 
 [testenv:bindep]
+basepython = python3
 deps = bindep
 commands = bindep {posargs}
 
 [testenv:lower-constraints]
+basepython = python3
 deps =
   -c{toxinidir}/lower-constraints.txt
   -r{toxinidir}/test-requirements.txt