[New-bugs-announce] [issue31916] ensurepip not honoring value of $(DESTDIR) - pip not installed

multimiler report at bugs.python.org
Tue Oct 31 22:08:45 EDT 2017

New submission from multimiler <reid.madsen at me.com>:

I am building python from source for installation at /opt/python-3.6.3.  The result of the build will be installed in /somewhere/deb-pkg-build-dir.  I configure, build, and install, the package as follows:

./configure --prefix=/opt/python-$VER --enable-optimizations --with-ensurepip=install
make install DESTDIR=/somewhere/deb-pkg-build-dir

At the very end of the build log I find:

Requirement already satisfied: setuptools in /opt/python-3.6.3/lib/python3.6/site-packages

As a result PIP is not installed.  This is an error.  The pip installation process should be looking in $(DESTDIR)/opt/python-3.6.3.  Instead it is looking at /opt/python-3.6.3/... which is the python installation on the current build host -- NOT INSTALLED BY THIS BUILD.

In the top-level Makefile.pre I find the following that runs ensurepip to install pip:

install:  commoninstall bininstall maninstall
        if test "x$(ENSUREPIP)" != "xno"  ; then \
                case $(ENSUREPIP) in \
                        upgrade) ensurepip="--upgrade" ;; \
                        install|*) ensurepip="" ;; \
                esac; \
                $(RUNSHARED) $(PYTHON_FOR_BUILD) -m ensurepip \
                        $$ensurepip --root=$(DESTDIR)/ ; \

As you can see $(DESTDIR) is passed into ensurepip, but it is never used when checking for pip existence.

components: Installation
messages: 305351
nosy: multimiler
priority: normal
severity: normal
status: open
title: ensurepip not honoring value of $(DESTDIR) - pip not installed
type: behavior
versions: Python 3.6

Python tracker <report at bugs.python.org>

More information about the New-bugs-announce mailing list