5
5
Binary distribution format
6
6
==========================
7
7
8
- The binary distribution format (:term: `wheel <Wheel> `) was originally defined
9
- in :pep: `427 `. The current version of the specification is here.
10
-
11
-
12
- Abstract
13
- ========
14
-
15
- This PEP describes a built-package format for Python called "wheel".
8
+ This page specifies the binary distribution format for Python packages,
9
+ also called the wheel format.
16
10
17
11
A wheel is a ZIP-format archive with a specially formatted file name and
18
12
the ``.whl `` extension. It contains a single distribution nearly as it
@@ -23,31 +17,6 @@ may be installed by simply unpacking into site-packages with the standard
23
17
out onto their final paths at any later time.
24
18
25
19
26
- PEP Acceptance
27
- ==============
28
-
29
- This PEP was accepted, and the defined wheel version updated to 1.0, by
30
- Nick Coghlan on 16th February, 2013 [1 ]_
31
-
32
-
33
- Rationale
34
- =========
35
-
36
- Python needs a package format that is easier to install than sdist.
37
- Python's sdist packages are defined by and require the distutils and
38
- setuptools build systems, running arbitrary code to build-and-install,
39
- and re-compile, code just so it can be installed into a new
40
- virtualenv. This system of conflating build-install is slow, hard to
41
- maintain, and hinders innovation in both build systems and installers.
42
-
43
- Wheel attempts to remedy these problems by providing a simpler
44
- interface between the build system and the installer. The wheel
45
- binary package format frees installers from having to know about the
46
- build system, saves time by amortizing compile time over many
47
- installations, and removes the need to install a build system in the
48
- target environment.
49
-
50
-
51
20
Details
52
21
=======
53
22
@@ -469,20 +438,16 @@ Is it possible to import Python code directly from a wheel file?
469
438
aware that many projects will require a failure to be reproduced with
470
439
a fully installed package before accepting it as a genuine bug.
471
440
472
- Changes
473
- =======
474
-
475
- Since :pep: `427 `, this specification has changed as follows:
476
441
477
- - The rules on escaping in wheel filenames were revised, to bring them into line
478
- with what popular tools actually do (February 2021).
442
+ History
443
+ =======
479
444
445
+ This specification was originally approved as :pep: `427 `.
480
446
481
- References
482
- ==========
447
+ The following changes were applied since the initial version:
483
448
484
- .. [ 1 ] PEP acceptance
485
- (https://mail.python.org/pipermail/python-dev/2013- February/124103.html)
449
+ - The rules on escaping in wheel filenames were revised, to bring them
450
+ into line with what popular tools actually do ( February 2021).
486
451
487
452
488
453
Appendix
@@ -499,9 +464,3 @@ Example urlsafe-base64-nopad implementation::
499
464
def urlsafe_b64decode_nopad(data):
500
465
pad = b'=' * (4 - (len(data) & 3))
501
466
return base64.urlsafe_b64decode(data + pad)
502
-
503
-
504
- Copyright
505
- =========
506
-
507
- This document has been placed into the public domain.
0 commit comments