My requirements.txt

Every developer has their go to list of packages they use when starting out a new project. I thought I’d list my basic set of packages that I use for almost all of my projects. I got this idea from Daniel Greenfeld, you can check out his list here.

Django

Django is my go to framework. You can easily get a project going in a couple minutes. I’m using 1.4.2 in production and 1.5 in development. You can read about the changes to Django 1.5.

django-secure

django-secure provides you with a checklist of things you can do to make your site more secure. I include it to help me from forgetting about certain settings.

django-model-utils

Provides a number of useful mixins and utilities to help with certain pitfalls in Django. Status Field and Inheritance Manager are two very useful things.

psycopg2

A no brainer if you’re using Postgres. Make sure you have XCode installed if you’re installing psycopg2 on OS X.

django-debug-toolbar

This tool gives you the ability to dig deep into the performance of your site. Just having the ability to quickly see how many queries are being run on a specific page is worth the installation.

South

Sanely handling schema changes since 2008.

django-redis-cache

This provides a Redis backend for Django’s caching mechanism.

django-waffle

Whenever I want to release large features I use django-waffle to feature flip. This allows me to easily select which users/groups get certain features and which ones don’t.

requests

I feel like Kenneth Reitz Requests is a staple for any Python project. I can easily call webservices and scrape content with requests. It really is “HTTP for Humans”.

Installing these Requirements

If you’d like to install the above requirements copy the list below into a requirements.txt file.

django
django-secure
django-model-utils
psycopg2
django-debug-toolbar
South
django-redis-cache
django-waffle
requests

Then you can install the requirements by running

pip install -r requirements.txt

What packages do you use on a regular basis?

  • Martin Winkler

    What packages do I use? here’s a few lines of my requirements.txt:

    # nicer admin interface
    #(Pygments and feedparser are needed by django-admin-tools)
    django-admin-tools==0.4.1
    Pygments==1.5
    feedparser==5.1.2

    # cool manage.py commands
    django-extensions==0.9
    pygraphviz==1.1

    # easy front end debugging
    django-debug-toolbar==0.9.4
    werkzeug

    # testing stuff
    selenium
    coverage
    django-coverage
    django-nose

    # nice for development
    ipython
    pep8

    # PIL alternative that works with pip
    pillow

    #compress and combine Javascript and CSS files
    django_compressor
    slimit

    # sphinx documentation
    Sphinx

    # LDAP adapter for authentication – and possibly also authorization
    django-auth-ldap

    # nice ajax stuff
    django-easy-pjax