PyOgre run-time error FAQ        

PyOgre common run-time error FAQ

if techniquePass.hasVertexProgram() and
 TypeError: No Python class registered for C++ class class Ogre::GpuProgramPtr

This is a PyOgre developement bug and should be reported to the development team (likely an old return_value policy that should not be there).

ArgumentError: Python argument types in
 FrameTimeControllerValue, LightWibbler, WaveformControllerFunction)
 did not match C++ signature:
      createController(class Ogre::ControllerManager {lvalue}, class 
 Ogre::SharedPtr<class Ogre::ControllerValue<float> >, class 
 Ogre::SharedPtr<class Ogre::ControllerValue<float> >, class 
 Ogre::SharedPtr<class Ogre::ControllerFunction<float> >)

You likely forgot to call the base class constructor when subclass ogre class. You must always call base class constructo as follow:

class LightWibbler(ogre.RealControllerValue):
     def __init__( self, light, billboard, minColour, maxColour, minSize, maxSize ):
         ogre.RealControllerValue.__init__( self )
         # your init-code here

When inheriting in Python, calling the constructor (init) of the superclass is more than just a good habit. :-)