diskimage-builder/diskimage_builder/elements/dib-python/README.rst
Ian Wienand 8662297517 Deprecate dib-python; remove from in-tree elements
We are at the point that all distributions we are building have Python
3, so any tools running in the chroot can assume Python 3 exists.
This makes dib-python redundant; mark it as deprecated and start to
remove it from elements where it is no longer required.

Change-Id: I5d852843ec65d3b04444b77c54c5b82424455cd8
2020-08-07 10:38:16 +10:00

35 lines
1.3 KiB
ReStructuredText

==========
dib-python
==========
.. note::
This element is deprecated. All distributions support Python 3 so
tools running in the chroot can simply use ``/usr/bin/python3``.
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.