I’ve begun using pip frequently for working with python packages in my virtualenvs. pip does a great job with installing (and now uninstalling) python packages, but it currently lacks a command that I miss from other types of package managers, such as aptitude and port – search.

I’ve forked a Git mirror of pip on Github for the purpose of tooling it with a search command, and I’ve made some progress in the last few days getting it working. It provides a search command which can search PyPI directly or a local search index. It displays the installation status of the package (i=installed, n=not installed) along with the name and summary.

    $ pip search django
    n BabelDjango               - Utilities for using Babel in Django
    n blogango                  - A django based blog
    n Blogmaker                 - Blog application for Django
    n boletin                   - Newsletter generation and sending application for Django
    n Camelot                   - A python GUI framework on top of  Sqlalchemy  and PyQt, inspired by the Django admin interface. Start building desktop applications at warp speed, simply by adding some additional information to you model definition.
    n chishop                   - Simple PyPI server written in Django.
    ...

To try out this feature, check out my branch on Github.

Update (6/6/2010): I sprinted on this feature at Pycon 2010 and it has been merged into pip and available since the 0.7 release. Thanks to Ian Bicking and Carl Meyer for helping make this happen.