.. _projects:
=================
Project Summaries
=================
:Page Status: Complete
:Last Reviewed: 2014-07-04
Summaries and links for the most relevant projects in the space of Python
installation and packaging.
.. _pypa_projects:
PyPA Projects
#############
.. _bandersnatch:
bandersnatch
============
`Mailing list `__ [2]_ |
`Issues `__ |
`Bitbucket `__ |
`PyPI `__
bandersnatch is a PyPI mirroring client designed to efficiently create a
complete mirror of the contents of PyPI.
.. _distlib:
distlib
=======
`Docs `__ |
`Mailing list `__ [2]_ |
`Issues `__ |
`Bitbucket `__ |
`PyPI `__
Distlib is a library which implements low-level functions that relate to
packaging and distribution of Python software. It consists in part of the
functions from the `distutils2 `_
project, which was intended to be released as ``packaging`` in the Python 3.3
stdlib, but was removed shortly before Python 3.3 entered beta testing.
.. _packaging:
packaging
=========
`Dev list `__ |
`Issues `__ |
`Github `__ |
`PyPI `__ |
User irc:#pypa |
Dev irc:#pypa-dev
Core utilities for Python packaging used by :ref:`pip` and :ref:`setuptools`.
.. _pip:
pip
===
`Docs `__ |
`User list `__ [1]_ |
`Dev list `__ |
`Issues `__ |
`Github `__ |
`PyPI `__ |
User irc:#pypa |
Dev irc:#pypa-dev
A tool for installing Python packages.
Python Packaging User Guide
===========================
`Docs `__ |
`Mailing list `__ |
`Issues `__ |
`Github `__ |
User irc:#pypa |
Dev irc:#pypa-dev
This guide!
.. _setuptools:
.. _easy_install:
setuptools
==========
`Docs `__ |
`User list `__ [2]_ |
`Dev list `__ |
`Issues `__ |
`Bitbucket `__ |
`PyPI `__ |
User irc:#pypa |
Dev irc:#pypa-dev
setuptools (which includes ``easy_install``) is a collection of enhancements to
the Python distutils that allow you to more easily build and distribute Python
distributions, especially ones that have dependencies on other packages.
`distribute`_ was a fork of setuptools that was merged back into setuptools (in
v0.7), thereby making setuptools the primary choice for Python packaging.
.. _twine:
twine
=====
`Mailing list `__ [2]_ |
`Issues `__ |
`Github `__ |
`PyPI `__
Twine is a utility for interacting with PyPI, that offers a secure replacement for
``setup.py upload``.
.. _virtualenv:
virtualenv
==========
`Docs `__ |
`User list `__ |
`Dev list `__ |
`Issues `__ |
`Github `__ |
`PyPI `__ |
User irc:#pypa |
Dev irc:#pypa-dev
A tool for creating isolated Python environments.
.. _warehouse:
Warehouse
=========
`Docs `__ |
`Mailing list `__ [2]_ |
`Issues `__ |
`Github `__ |
Dev irc:#pypa-dev
The new unreleased PyPI application which can be previewed at https://warehouse.python.org/.
.. _wheel:
wheel
=====
`Docs `__ |
`Mailing list `__ [2]_ |
`Issues `__ |
`Bitbucket `__ |
`PyPI `__ |
User irc:#pypa |
Dev irc:#pypa-dev
Primarily, the wheel project offers the ``bdist_wheel`` :ref:`setuptools` extension for
creating :term:`wheel distributions `. Additionally, it offers its own
command line utility for creating and installing wheels.
Non-PyPA Projects
#################
.. _bento:
bento
=====
`Docs `__ |
`Mailing list `__ |
`Issues `__ |
`Github `__ |
`PyPI `__
Bento is a packaging tool solution for python software, targeted as an
alternative to distutils, setuptools, distribute, etc.... Bento's philosophy is
reproducibility, extensibility and simplicity (in that order).
.. _buildout:
buildout
========
`Docs `__ |
`Mailing list `__ [2]_ |
`Issues `__ |
`PyPI `__ |
irc:#buildout
Buildout is a Python-based build system for creating, assembling and deploying
applications from multiple parts, some of which may be non-Python-based. It
lets you create a buildout configuration and reproduce the same software later.
.. _conda:
conda
=====
`Docs `__
conda is the package management tool for `Anaconda
`__ Python installations.
Anaconda Python is a distribution from `Continuum Analytics
`__ specifically aimed at the scientific
community, and in particular on Windows where the installation of binary
extensions is often difficult.
Conda is a completely separate tool to pip, virtualenv and wheel, but provides
many of their combined features in terms of package management, virtual environment
management and deployment of binary extensions.
Conda does not install packages from PyPI and can install only from
the official Continuum repositories, or binstar.org (a place for
user-contributed *conda* packages), or a local (e.g. intranet) package server.
However, note that pip can be installed into, and work side-by-side with conda
for managing distributions from PyPI.
devpi
=====
`Docs `__ |
`Mailing List `__ |
`Issues `__ |
`PyPI `__
devpi features a powerful PyPI-compatible server and PyPI proxy cache with
a complimentary command line tool to drive packaging, testing and release
activities with Python.
.. _hashdist:
Hashdist
========
`Docs `__ |
`Github `__
Hashdist is a library for building non-root software distributions. Hashdist is
trying to be “the Debian of choice for cases where Debian technology doesn’t
work”. The best way for Pythonistas to think about Hashdist may be a more
powerful hybrid of virtualenv and buildout.
.. _pex:
pex
===
`Docs `__ |
`Github `__ |
`PyPI `__
pex is both a library and tool for generating ``.pex`` (Python EXecutable)
files, standalone Python environments in the spirit of :ref:`virtualenv`.
``.pex`` files are just carefully constructed zip files with a
``#!/usr/bin/env python`` and special ``__main__.py``, and are designed to make
deployment of Python applications as simple as ``cp``.
Standard Library Projects
#########################
.. _distutils:
distutils
=========
`Docs `__ |
`User list `__ [2]_ |
`Issues `__ |
User irc:#pypa |
Dev irc:#pypa-dev
A package in the Python Standard Library that has support for creating and
installing :term:`distributions `. :ref:`Setuptools`
provides enhancements to distutils, and is much more commonly used than just
using distutils by itself.
.. _venv:
venv
====
`Docs `__ |
`Issues `__
A package in the Python Standard Library (starting with Python 3.3) that
includes the ``pyvenv`` tool for creating :term:`Virtual Environments `. For more information, see the tutorial section on :ref:`Creating
and using Virtual Environments`.
----
.. [1] pip was created by the same developer as virtualenv, and early on adopted
the virtualenv mailing list, and it's stuck ever since.
.. [2] Multiple projects reuse the distutils-sig mailing list as their user list.
.. _distribute: https://pypi.python.org/pypi/distribute