lfs/chapter08/wheel.xml
Xi Ruoyao e3187f4895
wheel: build the wheel archive of wheel itself
This avoids running "python3 setup.py install" (indirectly), which may
not work correctly in the future with Python 3.12.
2022-11-22 18:24:26 +08:00

144 lines
4.2 KiB
XML

<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
<!ENTITY % general-entities SYSTEM "../general.ent">
%general-entities;
]>
<sect1 id="ch-system-wheel" role="wrap">
<?dbhtml filename="wheel.html"?>
<sect1info condition="script">
<productname>wheel</productname>
<productnumber>&wheel-version;</productnumber>
<address>&wheel-url;</address>
</sect1info>
<title>Wheel-&wheel-version;</title>
<indexterm zone="ch-system-wheel">
<primary sortas="a-wheel">wheel</primary>
</indexterm>
<sect2 role="package">
<title/>
<para>Wheel is a Python library that is the reference
implementation of the Python wheel packaging standard.</para>
<segmentedlist>
<segtitle>&buildtime;</segtitle>
<segtitle>&diskspace;</segtitle>
<seglistitem>
<seg>&wheel-fin-sbu;</seg>
<seg>&wheel-fin-du;</seg>
</seglistitem>
</segmentedlist>
</sect2>
<sect2 role="installation">
<title>Installation of Wheel</title>
<para>Compile wheel with the following command:</para>
<screen><userinput remap="make">PYTHONPATH=src pip3 wheel -w dist --no-build-isolation --no-deps $PWD</userinput></screen>
<para>Install wheel with the following command:</para>
<screen><userinput remap="install">pip3 install --no-index --find-links=dist wheel</userinput></screen>
<variablelist>
<title>The meaning of the pip3 commands:</title>
<varlistentry>
<term><envar>PYTHONPATH=src</envar></term>
<listitem>
<para>Allow using this package (not installed yet) to build a
wheel archive for itself, to avoid a chicken-or-egg problem.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><command>wheel</command></term>
<listitem>
<para>Build wheel archive for this package.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>-w dist</parameter></term>
<listitem>
<para>Put the created wheels into the
<filename class='directory'>dist</filename> directory.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><command>install</command></term>
<listitem>
<para>Install the package.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>--no-build-isolation</parameter>,
<parameter>--no-deps</parameter>, and
<parameter>--no-index</parameter></term>
<listitem>
<para>Prevent pip from fetching files from the online package
repository (PyPI). If packages are installed in the correct order,
then it won't need to fetch any files in the first place, but these
options add some safety in case of user error.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>--find-links dist</parameter></term>
<listitem>
<para>Search wheel archives from the
<filename class='directory'>dist</filename> directory.</para>
</listitem>
</varlistentry>
</variablelist>
</sect2>
<sect2 id="contents-wheel" role="content">
<title>Contents of Wheel</title>
<segmentedlist>
<segtitle>Installed program</segtitle>
<segtitle>Installed directories</segtitle>
<seglistitem>
<seg>wheel</seg>
<seg>
/usr/lib/python&python-minor;/site-packages/wheel and
/usr/lib/python&python-minor;/site-packages/wheel-&wheel-version;.dist-info
</seg>
</seglistitem>
</segmentedlist>
<variablelist>
<bridgehead renderas="sect3">Short Descriptions</bridgehead>
<?dbfo list-presentation="list"?>
<?dbhtml list-presentation="table"?>
<varlistentry id="wheel-wheel">
<term><command>wheel</command></term>
<listitem>
<para>
is an utility to unpack, pack, or convert wheel packages
</para>
<indexterm zone="ch-system-wheel">
<primary sortas="b-wheel">wheel</primary>
</indexterm>
</listitem>
</varlistentry>
</variablelist>
</sect2>
</sect1>