of Python are available and can be installed with e.g. ``pkgutil -i python27``.
+.. _building-python-on-unix:
+
Building Python
===============
all platforms (where X.Y stands for the version of the Python installation),
along with the ``pip`` Python package and its dependencies.
+For CPython :ref:`source builds on POSIX systems <building-python-on-unix>`,
+the ``make install`` and ``make altinstall`` commands do not bootstrap ``pip``
+by default. This behaviour can be controlled through configure options, and
+overridden through Makefile options.
+
On Windows and Mac OS X, the CPython installers now default to installing
``pip`` along with CPython itself (users may opt out of installing it
during the installation process). Window users will need to opt in to the
# commandline in that case.
VERSION=@VERSION@
+ENSUREPIP=@ENSUREPIP@
builddir = ..
srcdir=@srcdir@
prefix=@prefix@
+exec_prefix=@exec_prefix@
LIBDEST=$(prefix)/lib/python$(VERSION)
RUNSHARED=@RUNSHARED@
BUILDEXE=@BUILDEXEEXT@
export MACOSX_DEPLOYMENT_TARGET
# These are normally glimpsed from the previous set
-bindir=$(prefix)/bin
+BINDIR= @bindir@
PYTHONAPPSDIR=@FRAMEWORKINSTALLAPPSPREFIX@/$(PYTHONFRAMEWORK) $(VERSION)
APPINSTALLDIR=$(prefix)/Resources/Python.app
ln -fs "$(prefix)/bin/$${fn}" "$(DESTDIR)$(FRAMEWORKUNIXTOOLSPREFIX)/bin/$${fn}" ;\
done
endif
+ -if test "x$(ENSUREPIP)" != "xno" ; then \
+ cd "$(DESTDIR)$(FRAMEWORKUNIXTOOLSPREFIX)/bin" && \
+ for fn in \
+ easy_install \
+ pip \
+ pip2 \
+ ; \
+ do \
+ rm -f $${fn} ;\
+ $(LN) -s $(BINDIR)/$${fn} $${fn} ;\
+ done ;\
+ fi
#
ln -fs "$(prefix)/bin/$${fn}" "$(DESTDIR)$(FRAMEWORKUNIXTOOLSPREFIX)/bin/$${fn}" ;\
done
endif
- ln -fs "$(prefix)/bin/2to3-$(VERSION)" "$(DESTDIR)$(FRAMEWORKUNIXTOOLSPREFIX)/bin/2to3-$(VERSION)" ;\
+ ln -fs "$(prefix)/bin/2to3-$(VERSION)" "$(DESTDIR)$(FRAMEWORKUNIXTOOLSPREFIX)/bin/2to3-$(VERSION)"
+ -if test "x$(ENSUREPIP)" != "xno" ; then \
+ cd "$(DESTDIR)$(FRAMEWORKUNIXTOOLSPREFIX)/bin" && \
+ for fn in \
+ easy_install-$(VERSION) \
+ pip$(VERSION) \
+ ; \
+ do \
+ rm -f $${fn} ;\
+ $(LN) -s $(BINDIR)/$${fn} $${fn} ;\
+ done ;\
+ fi
# By default most tools are installed without a version in their basename, to
# make it easier to install (and use) several python versions side-by-side move
# Environment to run shared python without installed libraries
RUNSHARED= @RUNSHARED@
+# ensurepip options
+ENSUREPIP= @ENSUREPIP@
+
# Modes for directories, executables and data files created by the
# install process. Default to user-only-writable for all file types.
DIRMODE= 755
$(TESTPYTHON) $(TESTPROG) $(MEMTESTOPTS)
# Install everything
-install: @FRAMEWORKINSTALLFIRST@ altinstall bininstall maninstall @FRAMEWORKINSTALLLAST@
+install: @FRAMEWORKINSTALLFIRST@ commoninstall bininstall maninstall @FRAMEWORKINSTALLLAST@
+ if test "x$(ENSUREPIP)" != "xno" ; then \
+ case $(ENSUREPIP) in \
+ upgrade) ensurepip="--upgrade" ;; \
+ install|*) ensurepip="" ;; \
+ esac; \
+ $(RUNSHARED) $(PYTHON_FOR_BUILD) -m ensurepip \
+ $$ensurepip --root=$(DESTDIR)/ ; \
+ fi
# Install almost everything without disturbing previous versions
-altinstall: @FRAMEWORKALTINSTALLFIRST@ altbininstall libinstall inclinstall \
- libainstall altmaninstall \
- sharedinstall oldsharedinstall @FRAMEWORKALTINSTALLLAST@
+altinstall: commoninstall
+ if test "x$(ENSUREPIP)" != "xno" ; then \
+ case $(ENSUREPIP) in \
+ upgrade) ensurepip="--altinstall --upgrade --no-default-pip" ;; \
+ install|*) ensurepip="--altinstall --no-default-pip" ;; \
+ esac; \
+ $(RUNSHARED) $(PYTHON_FOR_BUILD) -m ensurepip \
+ $$ensurepip --root=$(DESTDIR)/ ; \
+ fi
+
+commoninstall: @FRAMEWORKALTINSTALLFIRST@ \
+ altbininstall libinstall inclinstall libainstall \
+ sharedinstall oldsharedinstall altmaninstall \
+ @FRAMEWORKALTINSTALLLAST@
# Install shared libraries enabled by Setup
DESTDIRS= $(exec_prefix) $(LIBDIR) $(BINLIBDEST) $(DESTSHARED)
.PHONY: frameworkinstall frameworkinstallframework frameworkinstallstructure
.PHONY: frameworkinstallmaclib frameworkinstallapps frameworkinstallunixtools
.PHONY: frameworkaltinstallunixtools recheck autoconf clean clobber distclean
-.PHONY: smelly funny patchcheck touch altmaninstall
+.PHONY: smelly funny patchcheck touch altmaninstall commoninstall
.PHONY: gdbhooks
# IF YOU PUT ANYTHING HERE IT WILL GO AWAY
- Issue #22877: PEP 477 - OS X installer now installs pip.
+- Issue #22878: PEP 477 - "make install" and "make altinstall" can now install
+ or upgrade pip, using the bundled pip provided by the backported ensurepip
+ module. A configure option, --with-ensurepip[=upgrade|install|no], is
+ available to set the option for subsequent installs; the default for Python 2
+ in "no" (do not install or upgrade pip). The option can also be set with
+ "make [alt]install ENSUREPIP=[upgrade|install|no]".
+
Windows
-------
#endif"
ac_subst_vars='LTLIBOBJS
+ENSUREPIP
SRCDIRS
THREADHEADERS
UNICODE_OBJS
with_libc
enable_big_digits
enable_unicode
+with_ensurepip
'
ac_precious_vars='build_alias
host_alias
--with-fpectl enable SIGFPE catching
--with-libm=STRING math library
--with-libc=STRING C library
+ --with(out)-ensurepip=[=OPTION]
+ "install" or "upgrade" using bundled pip, default is
+ "no"
Some influential environment variables:
CC C compiler command
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: done" >&5
$as_echo "done" >&6; }
+# ensurepip option
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ensurepip" >&5
+$as_echo_n "checking for ensurepip... " >&6; }
+
+# Check whether --with-ensurepip was given.
+if test "${with_ensurepip+set}" = set; then :
+ withval=$with_ensurepip;
+else
+ with_ensurepip=no
+fi
+
+case $with_ensurepip in #(
+ yes|upgrade) :
+ ENSUREPIP=upgrade ;; #(
+ install) :
+ ENSUREPIP=install ;; #(
+ no) :
+ ENSUREPIP=no ;; #(
+ *) :
+ as_fn_error $? "--with-ensurepip=upgrade|install|no" "$LINENO" 5 ;;
+esac
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ENSUREPIP" >&5
+$as_echo "$ENSUREPIP" >&6; }
+
+
# generate output files
ac_config_files="$ac_config_files Makefile.pre Modules/Setup.config Misc/python.pc"
done
AC_MSG_RESULT(done)
+# ensurepip option
+AC_MSG_CHECKING(for ensurepip)
+AC_ARG_WITH(ensurepip,
+ [AS_HELP_STRING([--with(out)-ensurepip=@<:@=OPTION@:>@],
+ ["install" or "upgrade" using bundled pip, default is "no"])],
+ [],
+ [with_ensurepip=no])
+AS_CASE($with_ensurepip,
+ [yes|upgrade],[ENSUREPIP=upgrade],
+ [install],[ENSUREPIP=install],
+ [no],[ENSUREPIP=no],
+ [AC_MSG_ERROR([--with-ensurepip=upgrade|install|no])])
+AC_MSG_RESULT($ENSUREPIP)
+AC_SUBST(ENSUREPIP)
+
# generate output files
AC_CONFIG_FILES(Makefile.pre Modules/Setup.config Misc/python.pc)
AC_CONFIG_FILES([Modules/ld_so_aix], [chmod +x Modules/ld_so_aix])