You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Vinay Sajip 8ed03aab48 Bump version. 10 months ago
.github/workflows Update test verbosity, tweak CI triggers. 10 months ago
PC Update launchers to ignore handle-duplication errors in GUI launchers. 11 months ago
distlib Bump version. 10 months ago
docs Add release number to documentation. 1 year ago
tests Remove/change some more obsolete code paths. 10 months ago
.coveragerc Updated change log and tweaked coverage config. 8 years ago
.gitignore Added .gitignore. 3 years ago
.hgignore Remove/change some more obsolete code paths. 10 months ago
.hgtags Added tag 0.3.4 for changeset b55294aa7e97 10 months ago
.readthedocs.yml Updated ReadTheDocs configuration. 3 years ago
.travis.yml Update Travis configuration. 2 years ago
CHANGES.rst Changes for 0.3.4. 10 months ago
CONTRIBUTORS.txt Use resources rather than direct file access. 9 years ago
LICENSE.txt Added LICENSE.txt and CONTRIBUTORS.txt, updated copyright notices. 10 years ago Remove 2.6-specific stuff. 10 months ago
README.rst Update badge URL. 1 year ago
appveyor.yml Remove Python 3.9 from AppVeyor configuration. 2 years ago Remove 2.6-specific stuff. 10 months ago
tox.ini Remove 2.6-specific stuff. 10 months ago




What is it?

Distlib is a library which implements low-level functions that relate to packaging and distribution of Python software. It is intended to be used as the basis for third-party packaging tools. The documentation is available at

Main features

Distlib currently offers the following features:

  • The package distlib.database, which implements a database of installed distributions, as defined by 376, and distribution dependency graph logic. Support is also provided for non-installed distributions (i.e. distributions registered with metadata on an index like PyPI), including the ability to scan for dependencies and building dependency graphs.
  • The package distlib.index, which implements an interface to perform operations on an index, such as registering a project, uploading a distribution or uploading documentation. Support is included for verifying SSL connections (with domain matching) and signing/verifying packages using GnuPG.
  • The package distlib.metadata, which implements distribution metadata as defined by 426, 345, 314 and 241.
  • The package distlib.markers, which implements environment markers as defined by 426.
  • The package distlib.manifest, which implements lists of files used in packaging source distributions.
  • The package distlib.locators, which allows finding distributions, whether on PyPI (XML-RPC or via the "simple" interface), local directories or some other source.
  • The package distlib.resources, which allows access to data files stored in Python packages, both in the file system and in .zip files.
  • The package distlib.scripts, which allows installing of scripts with adjustment of shebang lines and support for native Windows executable launchers.
  • The package distlib.version, which implements version specifiers as defined by 440 / 426, but also support for working with "legacy" versions (setuptools/distribute) and semantic versions.
  • The package distlib.wheel, which provides support for building and installing from the Wheel format for binary distributions (see 427).
  • The package distlib.util, which contains miscellaneous functions and classes which are useful in packaging, but which do not fit neatly into one of the other packages in distlib.* The package implements enhanced globbing functionality such as the ability to use ** in patterns to specify recursing into subdirectories.

Python version and platform compatibility

Distlib is intended to be used on any Python version >= 2.7 and is tested on Python versions 2.7 and 3.3-3.6 on Linux, Windows, and Mac OS X (not all versions are tested on all platforms, but are expected to work correctly).

Project status

The project has reached a mature status in its development: there is a test suite and it has been exercised on Windows, Ubuntu and Mac OS X. The project is used by well-known projects such as pip and caniusepython3.

Code of Conduct

Everyone interacting in the distlib project's codebases, issue trackers, chat rooms, and mailing lists is expected to follow the PyPA Code of Conduct.