Запуск M-функции Matlab из Python

Я хочу запустить свою функцию Matlab (test.m) из Python. Я преобразовал функцию в исполняемый файл test.exe с помощью mcc -m команды Matlab; и я могу запустить его test.exe из командной строки Windows.

С другой стороны, когда я запускаю exe-файлы с помощью os.system и subprocess.call от Python, все работает хорошо:

subprocess.call('C:\Program Files\DVD Maker\DVDMaker.exe',shell=True)

(Мой DVDMaker открывается)

Но когда я бегу
subprocess.call('C:\...\test.exe',shell=True)

Я получаю это: The filename, directory name or volume label syntax is incorrect.


person ALI SHAHVARPOOR    schedule 13.02.2012    source источник


Ответы (2)


Ваша обработка строк неверна.

Вместо

'C:\...\test.exe'

либо использовать

'C:\\...\\test.exe'

or

r'C:\...\test.exe'

или даже

'C:/.../test.exe'

который также будет работать.

IOW, в исходной строке часть \test распознается как ‹TAB символ> + 'est'. Вы должны заключать \ в кавычки с другим \, использовать строки raw, которые не заботятся о забавных \ вещах внутри, или вообще опустить \, заменив их на /.

person glglgl    schedule 13.02.2012

Возможные проблемы:

  1. Вы не установили MCR.
  2. Не работает от имени администратора
  3. Запуск с сетевого диска
person Andrey Rubshtein    schedule 13.02.2012