LibraryWatch makes checking for updates to the packages you have installed easy, with a handy Django management command wrapper.

Install it, add 'librarywatch' to settings.INSTALLED_APPS and run python manage.py check_for_updates to see if there are any newer libraries available.

Output will look similar to:
celery (3.0.5 < 3.0.9)
django-celery (3.0.4 < 3.0.9)
django-haystack (2.0.0-beta < 1.2.7)
httplib2 (0.7.4 < 0.7.5)
kombu (2.3.2 < 2.4.5)
python-dateutil (1.5 < 2.1)
requests (0.13.5 < 0.14.0)
PIL (1.1.7 < 1.1.6)

It's a simple app / function, but will save me (and hopefully you) time and be easily installable on everything you do.

If you want to ignore versions (for instance you're tracking django-haystack on git, or want to make sure python-dateutil doesn't recommend you go to the 2.x branch with your app on Python 2.x) you can add LIBRARYWATCH_IGNORE_VERSIONS to your settings file.

LIBRARYWATCH_IGNORE_VERSIONS = {
    'python-dateutil': '*',  # 2.x series it recommends is not for Python 2.x
    'django-haystack': '*',  # running from git MASTER
    'PIL': '1.1.6',  # running 1.1.7 which doesn't appear to be on PyPI
}

Future ideas:
    - Track versions to allow ignoring when newer versions aren't backwards compatible so you absolutely DON'T want to upgrade.
    - Handle projects with multiple versions availabe better (i.e.) python-dateutil with 2.0 for Py3k only, 1.x series for Python 2.x)
    - Detect things not from PyPi but pulled from repositories (i.e. GitHub / Bitbucket) and use their respective APIs to determine if the SHA installed is the most recent.
