Arduino serial via python not working
I think you are forgetting a line-feeds / carriage-return character to finish off the command. If you wrote a command in the terminal and hit enter they would be sent.

Change code to:

def sendColour( r, g, b ):
    """Sends a RGB value to the shiftbrite"""
    #build up string
    tmpData = "rgb("
    tmpData += str(r)
    tmpData += ","
    tmpData += str(g)
    tmpData += ","
    tmpData += str(b)
    tmpData += ")\n"
    ser.write(tmpData)
    print(tmpData)
    return


Note the \n. 

The bit lash-cmdline.c file has this in it:

void doCharacter(char c) {
if ((c == '\r') || (c == '\n') || (c == '`')) {
    speol();
    *lbufptr = 0;
    doCommand(lbuf);
    initlbuf();
}


(rest of function not included)

This suggests a '\r', '\n' or a '`' character can be used to terminate the command.