Project description

Wheel

A built-package format for Python.

A wheel is a ZIP-format archive with a specially formatted filename
and the .whl extension. It is designed to contain all the files for a
PEP 376 compatible install in a way that is very close to the on-disk
format. Many packages will be properly installed with only the “Unpack”
step (simply extracting the file onto sys.path), and the unpacked archive
preserves enough information to “Spread” (copy data and scripts to their
final locations) at any later time.

The wheel project provides a bdist_wheel command for setuptools
(requires setuptools >= 0.8.0). Wheel files can be installed with a
newer pip from https://github.com/pypa/pip or with wheel’s own command
line utility.

Why not egg?

Python’s egg format predates the packaging related standards we have
today, the most important being PEP 376 “Database of Installed Python
Distributions” which specifies the .dist-info directory (instead of
.egg-info) and PEP 426 “Metadata for Python Software Packages 2.0”
which specifies how to express dependencies (instead of requires.txt
in .egg-info).

Wheel implements these things. It also provides a richer file naming
convention that communicates the Python implementation and ABI as well
as simply the language version used in a particular package.

Unlike .egg, wheel will be a fully-documented standard at the binary
level that is truly easy to install even if you do not want to use the
reference implementation.

0.23.0

Compatibiltiy tag flags added to the bdist_wheel command

sdist should include files necessary for tests

‘wheel convert’ can now also convert unpacked eggs to wheel

Rename pydist.json to metadata.json to avoid stepping on the PEP

The –skip-scripts option has been removed, and not generating scripts is now
the default. The option was a temporary approach until installers could
generate scripts themselves. That is now the case with pip 1.5 and later.
Note that using pip 1.4 to install a wheel without scripts will leave the
installation without entry-point wrappers. The “wheel install-scripts”
command can be used to generate the scripts in such cases.

0.9.5

Wheel’s own wheel file can be executed by Python, and can install itself:
python wheel-0.9.5-py27-none-any/wheel install ...

Use argparse; basic wheel install command should run with only stdlib
dependencies.

Allow requires_dist in setup.cfg’s [metadata] section. In addition to
dependencies in setup.py, but will only be interpreted when installing
from wheel, not from sdist. Can be qualified with environment markers.