Install pip with python interpreter
Currently we install pip/virtualenv with "/usr/local/bin/dib-python". This means that every time you create a virtualenv, the python interpreter inside it is called "dib-python" which is confusing. Add an env var DIB_PYTHON that points directly the to interpreter available during build, for use when running scripts. Change-Id: I88ad3c9eb958d58db4631d9b27bc2c592f970345
This commit is contained in:
parent
5c1579f0d6
commit
ffd4820d59
@ -2,11 +2,23 @@
|
|||||||
dib-python
|
dib-python
|
||||||
==========
|
==========
|
||||||
|
|
||||||
Adds a symlink to /usr/local/bin/dib-python which points at either a python2
|
Adds a symlink to `/usr/local/bin/dib-python` which points at either a
|
||||||
or python3 executable. This is useful for creating #! lines for scripts that
|
`python2` or `python3` executable as appropriate.
|
||||||
are compatible with both python2 and python3.
|
|
||||||
|
In-chroot scripts should use this as their interpreter
|
||||||
|
(`#!/usr/local/bin/dib-python`) to make scripts that are compatible
|
||||||
|
with both `python2` and `python3`. We can not assume
|
||||||
|
`/usr/bin/python` exists, as some platforms have started shipping with
|
||||||
|
only Python 3.
|
||||||
|
|
||||||
|
`DIB_PYTHON` will be exported as the python interpreter. You should
|
||||||
|
use this instead of `python script.py` (e.g. `${DIB_PYTHON}
|
||||||
|
script.py`). Note you can also call `/usr/local/bin/dib-python
|
||||||
|
script.py` but in some circumstances, such as creating a `virtualenv`,
|
||||||
|
it can create somewhat confusing references to `dib-python` that
|
||||||
|
remain in the built image.
|
||||||
|
|
||||||
This does not install a python if one does not exist, and instead fails.
|
This does not install a python if one does not exist, and instead fails.
|
||||||
|
|
||||||
This also exports a variable DIB_PYTHON_VERSION which will either be '2' or
|
This also exports a variable `DIB_PYTHON_VERSION` which will either be
|
||||||
'3' depending on the python version which dib-python points to.
|
'2' or '3' depending on the python version which dib-python points to.
|
||||||
|
@ -28,3 +28,8 @@ if [ -z "${DIB_PYTHON_VERSION:-}" ]; then
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
export DIB_PYTHON_VERSION
|
export DIB_PYTHON_VERSION
|
||||||
|
export DIB_PYTHON=python${DIB_PYTHON_VERSION}
|
||||||
|
|
||||||
|
# Local variables:
|
||||||
|
# mode: sh
|
||||||
|
# End:
|
||||||
|
@ -22,8 +22,8 @@ if [[ $DISTRO_NAME =~ (opensuse|fedora|centos|centos7|rhel|rhel7) ]]; then
|
|||||||
${YUM:-yum} install -y python-virtualenv python-pip python-setuptools
|
${YUM:-yum} install -y python-virtualenv python-pip python-setuptools
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# install pip; this overwrites packaged pip
|
# install the latest pip; this overwrites packaged pip
|
||||||
/usr/local/bin/dib-python /tmp/get-pip.py
|
${DIB_PYTHON} /tmp/get-pip.py
|
||||||
|
|
||||||
# pip and setuptools are closely related; we want to ensure the
|
# pip and setuptools are closely related; we want to ensure the
|
||||||
# latest for sanity. Because distro packages don't include enough
|
# latest for sanity. Because distro packages don't include enough
|
||||||
@ -65,6 +65,6 @@ EOF
|
|||||||
echo "exclude=python-virtualenv,python-pip,python-setuptools" >> ${conf}
|
echo "exclude=python-virtualenv,python-pip,python-setuptools" >> ${conf}
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
/usr/local/bin/dib-python /tmp/get-pip.py
|
${DIB_PYTHON} /tmp/get-pip.py
|
||||||
pip install virtualenv
|
pip install virtualenv
|
||||||
fi
|
fi
|
||||||
|
Loading…
Reference in New Issue
Block a user