Tool Recommendations¶
| Page Status: | Complete |
|---|---|
| Last Reviewed: | 2016-06-24 |
If you’re familiar with Python packaging and installation, and just want to know what tools are currently recommended, then here it is.
Installation Tool Recommendations¶
- Use pip to install Python packages from PyPI. [1] [2] Depending how pip is installed, you may need to also install wheel to get the benefit of wheel caching. [3]
- Use virtualenv, or venv to isolate application specific dependencies from a shared Python installation. [4]
- If you’re looking for management of fully integrated cross-platform software stacks, consider:
Packaging Tool Recommendations¶
- Use setuptools to define projects and create Source Distributions. [5] [6]
- Use the
bdist_wheelsetuptools extension available from the wheel project to create wheels. This is especially beneficial, if your project contains binary extensions. [7] - Use twine for uploading distributions to PyPI.
| [1] | There are some cases where you might choose to use easy_install (from
setuptools), e.g. if you need to install from Eggs
(which pip doesn’t support). For a detailed breakdown, see pip vs easy_install. |
| [2] | The acceptance of PEP 453 means that pip will be available by default in most installations of Python 3.4 or later. See the rationale section from PEP 453 as for why pip was chosen. |
| [3] | get-pip.py and virtualenv install wheel, whereas ensurepip and venv do not currently. Also, the common “python-pip” package that’s found in various linux distros, does not depend on “python-wheel” currently. |
| [4] | Beginning with Python 3.4, venv will create virtualenv environments
with pip installed, thereby making it an equal alternative to
virtualenv. However, using virtualenv will still be
recommended for users that need cross-version consistency. |
| [5] | Although you can use pure Even for projects that do choose to use |
| [6] | distribute (a fork of setuptools) was merged back into setuptools in June 2013, thereby making setuptools the default choice for packaging. |
| [7] | PyPI currently only allows uploading Windows and Mac OS X wheels, and they should be compatible with the binary installers provided for download from python.org. Enhancements will have to be made to the wheel compatibility tagging scheme before linux wheels will be allowed. |