Я получаю похожую ошибку при запуске. Но после нескольких попыток я обнаружил, что для одной и той же рукописи * .py фразу import matlab.engine
и eng = matlab.engine.start_matlab()
следует вводить только один раз
Я прокомментировал их, делая это, я могу снова запустить скрипт * .py.
В противном случае будет опубликовано сообщение об ошибке
ImportError: невозможно импортировать имя 'TimeoutError'.
Я думаю, что использование import matlab.engine
для запуска нового процесса MATLAB® - это все равно, что открыть дверь до того, как мы закроем дверь, каждый может войти в комнату или выйти снова и снова, но не нужно снова открывать дверь потому что это еще не закрыто.
«Перезапуск ядра» аналогичен автоматическому закрытию двери (Python останавливает двигатель и процесс MATLAB).