diff --git a/elements/debian-minimal/element-deps b/elements/debian-minimal/element-deps
index 4867362bd..158afb109 100644
--- a/elements/debian-minimal/element-deps
+++ b/elements/debian-minimal/element-deps
@@ -1,2 +1,3 @@
 debootstrap
+dib-python
 pkg-map
diff --git a/elements/debian-minimal/root.d/75-debian-minimal-baseinstall b/elements/debian-minimal/root.d/75-debian-minimal-baseinstall
index f12774d15..7c967e699 100755
--- a/elements/debian-minimal/root.d/75-debian-minimal-baseinstall
+++ b/elements/debian-minimal/root.d/75-debian-minimal-baseinstall
@@ -54,4 +54,13 @@ $apt_get update
 $apt_get clean
 $apt_get dist-upgrade -y
 
-$apt_get install -y busybox python sudo
+$apt_get install -y busybox sudo
+
+if [ "$DIB_PYTHON_VERSION" == "2" ]; then
+    $apt_get install -y python
+elif [ "$DIB_PYTHON_VERSION" == "3" ]; then
+    $apt_get install -y python3
+else
+    echo "ERROR: DIB_PYTHON_VERSION is '$DIB_PYTHON_VERSION' but needs to be 2 or 3"
+    exit 1
+fi
diff --git a/elements/dib-python/README.rst b/elements/dib-python/README.rst
index 980f146de..974a85599 100644
--- a/elements/dib-python/README.rst
+++ b/elements/dib-python/README.rst
@@ -7,3 +7,6 @@ or python3 executable. This is useful for creating #! lines for scripts that
 are compatible with both python2 and python3.
 
 This does not install a python if one does not exist, and instead fails.
+
+This also exports a variable DIB_PYTHON_VERSION which will either be '2' or
+'3' depending on the python version which dib-python points to.
diff --git a/elements/dib-python/environment.d/50-dib-python-version b/elements/dib-python/environment.d/50-dib-python-version
new file mode 100644
index 000000000..82196b378
--- /dev/null
+++ b/elements/dib-python/environment.d/50-dib-python-version
@@ -0,0 +1,24 @@
+# Pick which distros we need to force python2
+if [ -z "${DIB_PYTHON_VERSION:-}" ]; then
+    if [ "$DISTRO_NAME" == "ubuntu" ]; then
+        if [ "$DIB_RELEASE" == "trusty" ]; then
+            DIB_PYTHON_VERSION=2
+        fi
+    elif [ "$DISTRO_NAME" == "debian" ]; then
+        DIB_PYTHON_VERSION=2
+    elif [ "$DISTRO_NAME" == "fedora" ]; then
+        if [ "$DIB_RELEASE" -le 22 ]; then
+            DIB_PYTHON_VERSION=2
+        fi
+    elif [ "$DISTRO_NAME" == "centos" ]; then
+        DIB_PYTHON_VERSION=2
+    elif [ "$DISTRO_NAME" == "centos7" ]; then
+        DIB_PYTHON_VERSION=2
+    fi
+fi
+
+if [ -z "${DIB_PYTHON_VERSION:-}" ]; then
+    DIB_PYTHON_VERSION=3
+fi
+
+export DIB_PYTHON_VERSION
diff --git a/elements/dib-python/pre-install.d/01-dib-python b/elements/dib-python/pre-install.d/01-dib-python
index 2b3f76383..bf4d1c81a 100755
--- a/elements/dib-python/pre-install.d/01-dib-python
+++ b/elements/dib-python/pre-install.d/01-dib-python
@@ -6,9 +6,9 @@ fi
 set -eu
 set -o pipefail
 
-python_path=$(command -v python2 || command -v python3)
+python_path=$(command -v python${DIB_PYTHON_VERSION})
 if [ -z "$python_path" ]; then
-    echo "Could not find python2 or python3 executable."
+    echo "Could not find python${DIB_PYTHON_VERSION} executable."
     exit 1
 fi
 
diff --git a/elements/ubuntu-minimal/root.d/75-ubuntu-minimal-baseinstall b/elements/ubuntu-minimal/root.d/75-ubuntu-minimal-baseinstall
index 6e6de8a0b..359389957 100755
--- a/elements/ubuntu-minimal/root.d/75-ubuntu-minimal-baseinstall
+++ b/elements/ubuntu-minimal/root.d/75-ubuntu-minimal-baseinstall
@@ -43,4 +43,13 @@ $apt_get update
 $apt_get clean
 $apt_get dist-upgrade -y
 
-$apt_get install -y busybox python sudo
+$apt_get install -y busybox sudo
+
+if [ "$DIB_PYTHON_VERSION" == "2" ]; then
+    $apt_get install -y python
+elif [ "$DIB_PYTHON_VERSION" == "3" ]; then
+    $apt_get install -y python3
+else
+    echo "ERROR: DIB_PYTHON_VERSION is '$DIB_PYTHON_VERSION' but needs to be 2 or 3"
+    exit 1
+fi