It would be cleaner to only put the import statement in the try: block and move everything else into an else: block after except:. That way if for any unforeseen reason South decides to raise an ImportError from add_introspection_rules, it won't be eaten by your try:.