@@ -5,7 +5,7 @@ Tool Recommendations
5
5
====================
6
6
7
7
:Page Status: Complete
8
- :Last Reviewed: 2014-11-11
8
+ :Last Reviewed: 2015-08-31
9
9
10
10
If you're familiar with Python packaging and installation, and just want to know
11
11
what tools are currently recommended, then here it is.
@@ -15,10 +15,12 @@ Installation Tool Recommendations
15
15
=================================
16
16
17
17
* Use :ref: `pip ` to install Python :term: `packages <Distribution Package> ` from
18
- :term: `PyPI <Python Package Index (PyPI)> `. [1 ]_ [2 ]_
18
+ :term: `PyPI <Python Package Index (PyPI)> `. [1 ]_ [2 ]_ Depending how :ref: `pip `
19
+ is installed, you made need to also install :ref: `wheel ` to get the benefit
20
+ of :ref: `wheel caching <pip:Wheel cache >`. [3 ]_
19
21
20
22
* Use :ref: `virtualenv `, or `pyvenv `_ to isolate application specific
21
- dependencies from a shared Python installation. [3 ]_
23
+ dependencies from a shared Python installation. [4 ]_
22
24
23
25
* If you're looking for management of fully integrated cross-platform software
24
26
stacks, consider :ref: `buildout ` (primarily focused on the web development
@@ -31,11 +33,11 @@ Packaging Tool Recommendations
31
33
==============================
32
34
33
35
* Use :ref: `setuptools ` to define projects and create :term: `Source Distributions
34
- <Source Distribution (or "sdist")> `. [4 ]_ [5 ]_
36
+ <Source Distribution (or "sdist")> `. [5 ]_ [6 ]_
35
37
36
38
* Use the ``bdist_wheel `` :ref: `setuptools ` extension available from the
37
39
:ref: `wheel project <wheel >` to create :term: `wheels <Wheel> `. This is
38
- especially beneficial, if your project contains binary extensions. [6 ]_
40
+ especially beneficial, if your project contains binary extensions. [7 ]_
39
41
40
42
* Use `twine <https://pypi.python.org/pypi/twine >`_ for uploading distributions
41
43
to :term: `PyPI <Python Package Index (PyPI)> `.
@@ -54,12 +56,17 @@ Packaging Tool Recommendations
54
56
<http://www.python.org/dev/peps/pep-0453/#rationale> `_ from :ref: `PEP453
55
57
<pypa:PEP453s>` as for why pip was chosen.
56
58
57
- .. [3 ] Beginning with Python 3.4, ``pyvenv `` will create virtualenv environments
59
+ .. [3 ] :ref: `get-pip.py <pip:get-pip >` and :ref: `virtualenv ` install
60
+ :ref: `wheel `, whereas :ref: `ensurepip ` and :ref: `pyvenv <venv >` do not
61
+ currently. Also, the common "python-pip" package that's found in various
62
+ linux distros, does not depend on "python-wheel" currently.
63
+
64
+ .. [4 ] Beginning with Python 3.4, ``pyvenv `` will create virtualenv environments
58
65
with ``pip `` installed, thereby making it an equal alternative to
59
66
:ref: `virtualenv `. However, using :ref: `virtualenv ` will still be
60
67
recommended for users that need cross-version consistency.
61
68
62
- .. [4 ] Although you can use pure ``distutils `` for many projects, it does not
69
+ .. [5 ] Although you can use pure ``distutils `` for many projects, it does not
63
70
support defining dependencies on other projects and is missing several
64
71
convenience utilities for automatically populating distribution metadata
65
72
correctly that are provided by ``setuptools ``. Being outside the
@@ -73,11 +80,11 @@ Packaging Tool Recommendations
73
80
from a prebuilt :term: `wheel <Wheel> ` file), it will actually build
74
81
your project using :ref: `setuptools ` instead.
75
82
76
- .. [5 ] `distribute `_ (a fork of setuptools) was merged back into
83
+ .. [6 ] `distribute `_ (a fork of setuptools) was merged back into
77
84
:ref: `setuptools ` in June 2013, thereby making setuptools the default
78
85
choice for packaging.
79
86
80
- .. [6 ] :term: `PyPI <Python Package Index (PyPI)> ` currently only allows
87
+ .. [7 ] :term: `PyPI <Python Package Index (PyPI)> ` currently only allows
81
88
uploading Windows and Mac OS X wheels, and they should be compatible with
82
89
the binary installers provided for download from python.org. Enhancements
83
90
will have to be made to the :ref: `wheel compatibility tagging scheme
0 commit comments