how to make the separated vertex is the active object after separation with python?
Maybe this will lead you to the solution:

so = bpy.context.scene.objects
so.active = o2
for obj in so:
    obj.select = (obj==o2)