Ошибка импорта TimeoutError при использовании движка Matlab с Python 3.5 - PullRequest
0 голосов
/ 27 июня 2018

Я пытаюсь запустить функцию, написанную на matlab, в скрипте на python, используя matlab.engine.

При первом запуске сценария все работает нормально, но при повторном запуске сценария появляется сообщение об ошибке « ImportError: невозможно импортировать имя« TimeoutError »» при импорте механизма matlab. Перезапуск ядра позволяет мне снова запустить скрипт. Я также использую import matlab.engine , а не из matlab.engine import , чтобы избежать циклического импорта.

Любые предложения о том, как я могу решить проблему? Я использую Ubuntu 16.04 и работаю со spyder.

Большое спасибо!

1 Ответ

0 голосов
/ 28 марта 2019

Я получаю похожую ошибку при запуске. Но после нескольких попыток я обнаружил, что для одной и той же рукописи * .py фразу import matlab.engine и eng = matlab.engine.start_matlab() следует вводить только один раз

Я прокомментировал их, делая это, я могу снова запустить скрипт * .py.

В противном случае будет опубликовано сообщение об ошибке

ImportError: невозможно импортировать имя 'TimeoutError'.

Я думаю, что использование import matlab.engine для запуска нового процесса MATLAB® - это все равно, что открыть дверь до того, как мы закроем дверь, каждый может войти в комнату или выйти снова и снова, но не нужно снова открывать дверь потому что это еще не закрыто.

«Перезапуск ядра» аналогичен автоматическому закрытию двери (Python останавливает двигатель и процесс MATLAB).

...