summaryrefslogtreecommitdiff
path: root/docs/reference/pip_wheel.rst
blob: 75ae51a21fb1d5441318152e6e9e6128b1550aeb (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73

.. _`pip wheel`:

pip wheel
---------

.. contents::

Usage
*****

.. pip-command-usage:: wheel


Description
***********

.. pip-command-description:: wheel


Build System Interface
++++++++++++++++++++++

In order for pip to build a wheel, ``setup.py`` must implement the
``bdist_wheel`` command with the following syntax::

    python setup.py bdist_wheel -d TARGET

This command must create a wheel compatible with the invoking Python
interpreter, and save that wheel in the directory TARGET.

No other build system commands are invoked by the ``pip wheel`` command.

Customising the build
~~~~~~~~~~~~~~~~~~~~~

It is possible using ``--global-option`` to include additional build commands
with their arguments in the ``setup.py`` command. This is currently the only
way to influence the building of C extensions from the command line. For
example::

    pip wheel --global-option bdist_ext --global-option -DFOO wheel

will result in a build command of

::

    setup.py bdist_ext -DFOO bdist_wheel -d TARGET

which passes a preprocessor symbol to the extension build.

Such usage is considered highly build-system specific and more an accident of
the current implementation than a supported interface.



Options
*******

.. pip-command-options:: wheel

.. pip-index-options::


Examples
********

#. Build wheels for a requirement (and all its dependencies), and then install

    ::

      $ pip wheel --wheel-dir=/tmp/wheelhouse SomePackage
      $ pip install --no-index --find-links=/tmp/wheelhouse SomePackage