diff --git a/builds/runtimes/python-3.5.6 b/builds/runtimes/python-3.5.6
new file mode 100755
index 0000000000000000000000000000000000000000..0ee79d57bd6f18e40fdff900b1fc5a4ea6042060
--- /dev/null
+++ b/builds/runtimes/python-3.5.6
@@ -0,0 +1,29 @@
+#!/usr/bin/env bash
+# Build Path: /app/.heroku/python/
+
+OUT_PREFIX=$1
+BIN_DIR="$(cd "$(dirname "$0")"/../.. || exit; pwd)/bin"
+export BIN_DIR
+
+# shellcheck source=bin/utils
+source "$BIN_DIR/steps/sqlite3"
+
+sqlite3_version
+echo "Setting up SQLite3 Headers for $SQLITE3_VERSION"
+sqlite3_install "$OUT_PREFIX" "$SQLITE3_VERSION" 1
+
+echo "Building Python…"
+SOURCE_TARBALL='https://python.org/ftp/python/3.5.6/Python-3.5.6.tgz'
+curl -L $SOURCE_TARBALL | tar xz
+mv Python-3.7.0 src
+cd src
+
+./configure --prefix=$OUT_PREFIX --with-ensurepip=no
+make
+make install
+
+# Remove unneeded test directories, similar to the official Docker Python images:
+# https://github.com/docker-library/python
+find "${OUT_PREFIX}" \( -type d -a \( -name test -o -name tests \) \) -exec rm -rf '{}' +
+
+ln $OUT_PREFIX/bin/python3 $OUT_PREFIX/bin/python
diff --git a/builds/runtimes/python-3.6.7 b/builds/runtimes/python-3.6.7
new file mode 100755
index 0000000000000000000000000000000000000000..9d43de8e651816b02e50d19bcab8922733e42d05
--- /dev/null
+++ b/builds/runtimes/python-3.6.7
@@ -0,0 +1,29 @@
+#!/usr/bin/env bash
+# Build Path: /app/.heroku/python/
+
+OUT_PREFIX=$1
+BIN_DIR="$(cd "$(dirname "$0")"/../.. || exit; pwd)/bin"
+export BIN_DIR
+
+# shellcheck source=bin/utils
+source "$BIN_DIR/steps/sqlite3"
+
+sqlite3_version
+echo "Setting up SQLite3 Headers for $SQLITE3_VERSION"
+sqlite3_install "$OUT_PREFIX" "$SQLITE3_VERSION" 1
+
+echo "Building Python…"
+SOURCE_TARBALL='https://python.org/ftp/python/3.6.7/Python-3.6.7.tgz'
+curl -L $SOURCE_TARBALL | tar xz
+mv Python-3.7.0 src
+cd src
+
+./configure --prefix=$OUT_PREFIX --with-ensurepip=no
+make
+make install
+
+# Remove unneeded test directories, similar to the official Docker Python images:
+# https://github.com/docker-library/python
+find "${OUT_PREFIX}" \( -type d -a \( -name test -o -name tests \) \) -exec rm -rf '{}' +
+
+ln $OUT_PREFIX/bin/python3 $OUT_PREFIX/bin/python
diff --git a/builds/runtimes/python-3.7.1 b/builds/runtimes/python-3.7.1
new file mode 100755
index 0000000000000000000000000000000000000000..a4ad45f2fbd2fa59be44bfa42ea57d154be8712f
--- /dev/null
+++ b/builds/runtimes/python-3.7.1
@@ -0,0 +1,29 @@
+#!/usr/bin/env bash
+# Build Path: /app/.heroku/python/
+
+OUT_PREFIX=$1
+BIN_DIR="$(cd "$(dirname "$0")"/../.. || exit; pwd)/bin"
+export BIN_DIR
+
+# shellcheck source=bin/utils
+source "$BIN_DIR/steps/sqlite3"
+
+sqlite3_version
+echo "Setting up SQLite3 Headers for $SQLITE3_VERSION"
+sqlite3_install "$OUT_PREFIX" "$SQLITE3_VERSION" 1
+
+echo "Building Python…"
+SOURCE_TARBALL='https://python.org/ftp/python/3.7.1/Python-3.7.1.tgz'
+curl -L $SOURCE_TARBALL | tar xz
+mv Python-3.7.0 src
+cd src
+
+./configure --prefix=$OUT_PREFIX --with-ensurepip=no
+make
+make install
+
+# Remove unneeded test directories, similar to the official Docker Python images:
+# https://github.com/docker-library/python
+find "${OUT_PREFIX}" \( -type d -a \( -name test -o -name tests \) \) -exec rm -rf '{}' +
+
+ln $OUT_PREFIX/bin/python3 $OUT_PREFIX/bin/python
diff --git a/test/fixtures/python3/requirements.txt b/test/fixtures/python3_5/requirements.txt
similarity index 100%
rename from test/fixtures/python3/requirements.txt
rename to test/fixtures/python3_5/requirements.txt
diff --git a/test/fixtures/python3_5/runtime.txt b/test/fixtures/python3_5/runtime.txt
new file mode 100644
index 0000000000000000000000000000000000000000..e6391f4a68edd6f81269b05227977459a9fbd6a8
--- /dev/null
+++ b/test/fixtures/python3_5/runtime.txt
@@ -0,0 +1 @@
+python-3.5.6
diff --git a/test/fixtures/python3_6/requirements.txt b/test/fixtures/python3_6/requirements.txt
new file mode 100644
index 0000000000000000000000000000000000000000..663bd1f6a2ae02f29df59fb4963c17934034f731
--- /dev/null
+++ b/test/fixtures/python3_6/requirements.txt
@@ -0,0 +1 @@
+requests
\ No newline at end of file
diff --git a/test/fixtures/python3_6/runtime.txt b/test/fixtures/python3_6/runtime.txt
new file mode 100644
index 0000000000000000000000000000000000000000..34b35b713f56868abc889d5798cab36939bec38f
--- /dev/null
+++ b/test/fixtures/python3_6/runtime.txt
@@ -0,0 +1 @@
+python-3.6.7
diff --git a/test/fixtures/python3_7/requirements.txt b/test/fixtures/python3_7/requirements.txt
new file mode 100644
index 0000000000000000000000000000000000000000..663bd1f6a2ae02f29df59fb4963c17934034f731
--- /dev/null
+++ b/test/fixtures/python3_7/requirements.txt
@@ -0,0 +1 @@
+requests
\ No newline at end of file
diff --git a/test/fixtures/python3_7/runtime.txt b/test/fixtures/python3_7/runtime.txt
new file mode 100644
index 0000000000000000000000000000000000000000..4255f73ae6037a2a4a5ddd6a1093c841fc339845
--- /dev/null
+++ b/test/fixtures/python3_7/runtime.txt
@@ -0,0 +1 @@
+python-3.7.1