Template for new Python projects
Requirements: pip, virtualenv, nose for testing.
Create a project skeleton (reference: learn python the hard way)
$ mkdir skeleton && cd skeleton
$ mkdir bin NAME tests docs
$ touch NAME/__init__.py
$ touch tests/__init__.py
Setup.py
try:
    from setuptools import setup
except ImportError:
    from distutils.core import setup
config = {
    'description': 'My Project',
    'author': 'My Name',
    'url': 'URL to get it at.',
    'download_url': 'Where to download it.',
    'author_email': 'My email.',
    'version': '0.1',
    'install_requires': ['nose'],
    'packages': ['NAME'],
    'scripts': [],
    'name': 'projectname'
}
setup(**config)
tests/NAME_tests.py:
from nose.tools import *
import NAME
def setup():
    print "SETUP!"
def teardown():
    print "TEAR DOWN!"
def test_basic():
    print "I RAN!"
Testing the setup:
$ nosetests
Setting up a Virtual Environment:
$ virtualenv ENV
$ source ENV/bin/activate