diskimage-builder/diskimage_builder/elements/dib-python
Riccardo Pittau cf7d39e4cd Allow python3 to be used in Debian
Debian default Python interpreter version is 2.7, but it's
possible to install a Python 3 interpreter from the base
repository.
With this change, if we set DIB_PYTHON_VERSION to 3, we install
the python3 package from base, with python3-libs, python3-pip and
python3-setuptools, and redefine python_path, effectively allowing
Python 3 interpreter to be used in Debian.
See a result of the job for building the ipa image here:
https://review.opendev.org/705773

Change-Id: Idabfa94c2bff6e0de6daa0866084d5db14d7dcb0
2020-02-07 18:10:19 +01:00
..
cleanup.d Clean up dib-python symlink 2017-04-12 14:33:57 +10:00
environment.d dib-python : handle centos 8 2019-10-03 00:22:18 +00:00
pre-install.d Allow python3 to be used in Debian 2020-02-07 18:10:19 +01:00
README.rst Clean up dib-python symlink 2017-04-12 14:33:57 +10:00

README.rst

dib-python

Adds a symlink to /usr/local/bin/dib-python which points at either a python2 or python3 executable as appropriate.

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 also exports a variable DIB_PYTHON_VERSION which will either be '2' or '3' depending on the python version which dib-python points to.

Note

The dib-python interpreter will be removed in cleanup.d. It is only intended for build scripts.