Если я правильно понял Ваш вопрос - в Вашей программе возникает какая-то необрабатываемая ошибка, в результате которой она "вылетает" (завершается) и нужно запустить её заново. Если так, то на вскидку есть несколько вариантов:
- Обернуть весь код который вызывает ошибку в обработчик типа try/except
Или, если по какой-то причине это невозможно (например, после данной ошибки программа работает со сбоями) можно воспользоваться следующими вариантами:
- Программа Supervisor - позволяет (пере-)запускать программы и контролировать их работу (если не ошибаюсь, эта штука тоже написана на Python)
- Создать свой сервис - что на мой взгляд удобнее и с большой вероятностью не потребует установки дополнительного ПО, но потребует прав администратора в системе