diff --git a/tox.ini b/tox.ini
index 4d2e923a..39486618 100644
--- a/tox.ini
+++ b/tox.ini
@@ -1,9 +1,11 @@
 [tox]
-minversion = 2.0
+minversion = 3.1
 skipsdist = True
 envlist = docs,linters,functional
+ignore_basepython_conflict = True
 
 [testenv]
+basepython = python3
 usedevelop = True
 install_command =
     pip install -c{env:UPPER_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/master} {opts} {packages}
@@ -31,7 +33,6 @@ setenv =
     WORKING_DIR={toxinidir}
 
 [testenv:docs]
-basepython = python3
 deps = -r{toxinidir}/doc/requirements.txt
 commands =
     bash -c "rm -rf doc/build"
@@ -39,7 +40,6 @@ commands =
     sphinx-build --keep-going -b html doc/source doc/build/html
 
 [testenv:pdf-docs]
-basepython = python3
 deps = {[testenv:docs]deps}
 whitelist_externals =
   make
@@ -52,19 +52,16 @@ commands =
 extensions = .rst
 
 [testenv:releasenotes]
-basepython = python3
 deps = -r{toxinidir}/doc/requirements.txt
 commands =
     sphinx-build -a -E -W -d releasenotes/build/doctrees --keep-going -b html releasenotes/source releasenotes/build/html
 
 # environment used by the -infra templated docs job
 [testenv:venv]
-basepython = python3
 commands =
     {posargs}
 
 [testenv:pep8]
-basepython = python3
 commands =
     bash -c "{toxinidir}/tests/common/test-pep8.sh"
 
@@ -75,17 +72,14 @@ commands =
 ignore=F403
 
 [testenv:bashate]
-basepython = python3
 commands =
     bash -c "{toxinidir}/tests/common/test-bashate.sh"
 
 [testenv:ansible-syntax]
-basepython = python3
 commands =
     bash -c "{toxinidir}/tests/common/test-ansible-syntax.sh"
 
 [testenv:ansible-lint]
-basepython = python3
 commands =
     bash -c "{toxinidir}/tests/common/test-ansible-lint.sh"
 
@@ -108,7 +102,6 @@ commands =
     bash -c "{toxinidir}/tests/common/test-ansible-functional.sh"
 
 [testenv:nfs]
-basepython = python3
 setenv =
     {[testenv]setenv}
     ANSIBLE_OVERRIDES={toxinidir}/tests/overrides-nfs.yml
@@ -117,7 +110,6 @@ commands =
     bash -c "{toxinidir}/tests/common/test-ansible-functional.sh"
 
 [testenv:linters]
-basepython = python3
 commands =
     bash -c "{toxinidir}/tests/common/test-ansible-env-prep.sh"
     {[testenv:pep8]commands}