As a wild guess that may not work, it looks like you're using ARB extensions.  You could try creating the shader like so:

program = glCreateProgramObjectARB()

vert = glCreateShaderObjectARB(GL_VERTEX_SHADER_ARB)
frag = glCreateShaderObjectARB(GL_FRAGMENT_SHADER_ARB)

glShaderSourceARB(vert,[self.vert_src])
glShaderSourceARB(frag,[self.frag_src])

glCompileShaderARB(vert)
glCompileShaderARB(frag)

glAttachObjectARB(program,vert)
glAttachObjectARB(program,frag)

glDeleteObjectARB(vert)
glDeleteObjectARB(frag)

glValidateProgramARB(program)
glLinkProgramARB(program)

glUseShader(program)

Ian