diff --git a/config/python.m4 b/config/python.m4
index f3c76422296..0fa1e3e80d5 100644
--- a/config/python.m4
+++ b/config/python.m4
@@ -8,8 +8,15 @@
# ----------------
# Look for Python and set the output variable 'PYTHON' if found,
# fail otherwise.
+#
+# As the Python 3 transition happens and PEP 394 isn't updated, we
+# need to cater to systems that don't have unversioned "python" by
+# default. Some systems ship with "python3" by default and perhaps
+# have "python" in an optional package. Some systems only have
+# "python2" and "python3", in which case it's reasonable to prefer the
+# newer version.
AC_DEFUN([PGAC_PATH_PYTHON],
-[PGAC_PATH_PROGS(PYTHON, python)
+[PGAC_PATH_PROGS(PYTHON, [python python3 python2])
if test x"$PYTHON" = x""; then
AC_MSG_ERROR([Python not found])
fi
diff --git a/configure b/configure
index dca2d2dbf13..c1f67c445e4 100755
--- a/configure
+++ b/configure
@@ -8031,7 +8031,7 @@ fi
if test "$with_python" = yes; then
if test -z "$PYTHON"; then
- for ac_prog in python
+ for ac_prog in python python3 python2
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
diff --git a/doc/src/sgml/installation.sgml b/doc/src/sgml/installation.sgml
index c5acb1dbfb4..57031c400ba 100644
--- a/doc/src/sgml/installation.sgml
+++ b/doc/src/sgml/installation.sgml
@@ -1473,7 +1473,8 @@ su - postgres
PL/Python>
documentation]]>
]]>
- for more information. The default is python.
+ for more information. If this is not set, the following are probed
+ in this order: python python3 python2.