diff --git a/config/python.m4 b/config/python.m4
index c7310ee37d..52f34070dd 100644
--- a/config/python.m4
+++ b/config/python.m4
@@ -9,6 +9,9 @@
# Look for Python and set the output variable 'PYTHON' if found,
# fail otherwise.
#
+# Since we are supporting only Python 3.x, prefer python3 to plain python. If
+# the latter exists at all, it very possibly points to python2.
+
# 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
@@ -16,7 +19,7 @@
# "python2" and "python3", in which case it's reasonable to prefer the
# newer version.
AC_DEFUN([PGAC_PATH_PYTHON],
-[PGAC_PATH_PROGS(PYTHON, [python python3 python2])
+[PGAC_PATH_PROGS(PYTHON, [python3 python])
AC_ARG_VAR(PYTHON, [Python program])dnl
if test x"$PYTHON" = x""; then
AC_MSG_ERROR([Python not found])
@@ -37,8 +40,8 @@ python_majorversion=`echo "$python_fullversion" | sed '[s/^\([0-9]*\).*/\1/]'`
python_minorversion=`echo "$python_fullversion" | sed '[s/^[0-9]*\.\([0-9]*\).*/\1/]'`
python_version=`echo "$python_fullversion" | sed '[s/^\([0-9]*\.[0-9]*\).*/\1/]'`
# Reject unsupported Python versions as soon as practical.
-if test "$python_majorversion" -lt 3 -a "$python_minorversion" -lt 7; then
- AC_MSG_ERROR([Python version $python_version is too old (version 2.7 or later is required)])
+if test "$python_majorversion" -lt 3; then
+ AC_MSG_ERROR([Python version $python_version is too old (version 3 or later is required)])
fi
AC_MSG_CHECKING([for Python sysconfig module])
diff --git a/configure b/configure
index 9305555658..ba635a0062 100755
--- a/configure
+++ b/configure
@@ -10280,7 +10280,7 @@ fi
if test "$with_python" = yes; then
if test -z "$PYTHON"; then
- for ac_prog in python python3 python2
+ for ac_prog in python3 python
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
@@ -10346,8 +10346,8 @@ python_majorversion=`echo "$python_fullversion" | sed 's/^\([0-9]*\).*/\1/'`
python_minorversion=`echo "$python_fullversion" | sed 's/^[0-9]*\.\([0-9]*\).*/\1/'`
python_version=`echo "$python_fullversion" | sed 's/^\([0-9]*\.[0-9]*\).*/\1/'`
# Reject unsupported Python versions as soon as practical.
-if test "$python_majorversion" -lt 3 -a "$python_minorversion" -lt 7; then
- as_fn_error $? "Python version $python_version is too old (version 2.7 or later is required)" "$LINENO" 5
+if test "$python_majorversion" -lt 3; then
+ as_fn_error $? "Python version $python_version is too old (version 3 or later is required)" "$LINENO" 5
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for Python sysconfig module" >&5
diff --git a/doc/src/sgml/install-windows.sgml b/doc/src/sgml/install-windows.sgml
index 30dd0c7f75..b3435eabc4 100644
--- a/doc/src/sgml/install-windows.sgml
+++ b/doc/src/sgml/install-windows.sgml
@@ -136,7 +136,7 @@
to specify the location of your Python installation,
put the following in config.pl:
-$config->{python} = 'c:\python26';
+$config->{python} = 'c:\python310';
You only need to specify those parameters that are different from what's in
config_default.pl.
diff --git a/doc/src/sgml/installation.sgml b/doc/src/sgml/installation.sgml
index 655095f3b1..094d23c292 100644
--- a/doc/src/sgml/installation.sgml
+++ b/doc/src/sgml/installation.sgml
@@ -196,11 +196,7 @@ su - postgres
language, you need a Python
installation with the header files and
the sysconfig module. The minimum
- required version is Python 2.7.
- Python 3 is supported if it's
- version 3.2 or later; but see
-
- when using Python 3.
+ required version is Python 3.2.
@@ -1868,14 +1864,10 @@ build-postgresql:
PYTHON
- Python interpreter program. This will be used to
- determine the dependencies for building PL/Python. Also,
- whether Python 2 or 3 is specified here (or otherwise
- implicitly chosen) determines which variant of the PL/Python
- language becomes available. See
-
- for more information. If this is not set, the following are probed
- in this order: python python3 python2.
+ Python interpreter program. This will be used to determine the
+ dependencies for building PL/Python. If this is not set, the
+ following are probed in this order:
+ python3 python.
diff --git a/src/tools/msvc/Mkvcbuild.pm b/src/tools/msvc/Mkvcbuild.pm
index bab81bd459..105f5c72a2 100644
--- a/src/tools/msvc/Mkvcbuild.pm
+++ b/src/tools/msvc/Mkvcbuild.pm
@@ -490,6 +490,10 @@ sub mkvcbuild
if (!(defined($pyprefix) && defined($pyver)));
my $pymajorver = substr($pyver, 0, 1);
+
+ die "Python version $pyver is too old (version 3 or later is required)"
+ if int($pymajorver) < 3;
+
my $plpython = $solution->AddProject('plpython' . $pymajorver,
'dll', 'PLs', 'src/pl/plpython');
$plpython->AddIncludeDir($pyprefix . '/include');