User Guide¶
Building Wheels¶
To build a wheel for your project:
python -m pip install build
python -m build --wheel
This will build any C extensions in the project and then package those and the
pure Python code into a .whl
file in the dist
directory.
If your project contains no C extensions and is expected to work on both
Python 2 and 3, you will want to tell wheel to produce universal wheels by
adding this to your setup.cfg
file:
[bdist_wheel]
universal = 1
Including license files in the generated wheel file¶
Several open source licenses require the license text to be included in every
distributable artifact of the project. By default, wheel
conveniently
includes files matching the following glob patterns in the .dist-info
directory:
AUTHORS*
COPYING*
LICEN[CS]E*
NOTICE*
This can be overridden by setting the license_files
option in the
[metadata]
section of the project’s setup.cfg
. For example:
[metadata]
license_files =
license.txt
3rdparty/*.txt
No matter the path, all the matching license files are written in the wheel in
the .dist-info
directory based on their file name only.
By specifying an empty license_files
option, you can disable this
functionality entirely.
Note
There used to be an option called license_file
(singular).
As of wheel v0.32, this option has been deprecated in favor of the more
versatile license_files
option.
Converting Eggs to Wheels¶
The wheel tool is capable of converting eggs to the wheel format.
It works on both .egg
files and .egg
directories, and you can convert
multiple eggs with a single command:
wheel convert blah-1.2.3-py2.7.egg foo-2.0b1-py3.5.egg
The command supports wildcard expansion as well (via iglob()
) to
accommodate shells that do not do such expansion natively:
wheel convert *.egg
By default, the resulting wheels are written to the current working directory.
This can be changed with the --dest-dir
option:
wheel convert --dest-dir /tmp blah-1.2.3-py2.7.egg
Installing Wheels¶
To install a wheel file, use pip:
$ pip install someproject-1.5.0-py2-py3-none.whl