Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit

This matches the versions appropriately.

Co-authored-by: Pradyun Gedam <>

Git stats


Failed to load latest commit information.


Reusable core utilities for various Python Packaging interoperability specifications.

This library provides utilities that implement the interoperability specifications which have clearly one correct behaviour (eg: PEP 440) or benefit greatly from having a single shared implementation (eg: PEP 425).

The packaging project includes the following: version handling, specifiers, markers, requirements, tags, utilities.


The documentation provides information and the API for the following:

  • Version Handling
  • Specifiers
  • Markers
  • Requirements
  • Tags
  • Utilities


Use pip to install these utilities:

pip install packaging


If you run into bugs, you can file them in our issue tracker.

You can also join #pypa on Freenode to ask questions or get involved.

Code of Conduct

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


The CONTRIBUTING.rst file outlines how to contribute to this project as well as how to report a potential security issue. The documentation for this project also covers information about project development and security.

Project History

Please review the CHANGELOG.rst file or the Changelog documentation for recent changes and project history.