Запустите исполняемую форму MATLAB Python: не удалось найти версию 9.1 среды выполнения MATLAB - PullRequest
0 голосов
/ 06 августа 2020

У меня был сценарий, написанный коллегой в Python 2. Я внес некоторые изменения, чтобы преобразовать его в Python 3 (не уверен, что внес правильные исправления). Я закомментировал части с кодом Python 2. Проблема в том, что скрипт запускается, но затем не может найти версию Matlab Runtime. Я видел похожие вопросы, но ответы неясны.

вот что я получаю: Не удалось найти версию 9.1 Matlab Runtime. Попытка загрузить mclmcrrt9_1.dll ...

def run_subprocess(process_name, arguments):
"""
:param process_name:
:type process_name: Pathlib2.Path()
:param arguments:
:type arguments: list
"""
# process_name = process_name.parent.joinpath(process_name.name + '.exe')     # Python 2
process_name = process_name.parent.joinpath(process_name.name)
command = [str(process_name)]
for item in arguments:
    command.append(item)

# sys.stderr.write(unicode(str(command) + u'\n').encode(cfg.encoding, 'replace'))   # Python 2
sys.stderr.write((str(command) + u'\n'))
output = ''
error = ''
try:
    my_process = psutil.Popen(command, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
    print(my_process)
except Exception as e:
    # sys.stderr.write(unicode(str(e) + u'\n').encode(cfg.encoding, 'replace'))   # Python 2
    sys.stderr.write((str(e) + u'\n'))
    return '', 'Exception encountered with psutil.Popen(' + str(command) + ')'

try:
    output, error = my_process.communicate()
except Exception as e:
    sys.stderr.write(unicode(str(e) + u'\n').encode(cfg.encoding, 'replace'))
    return '', 'Exception encountered with psutil.Popen(' + str(command) + ')'
# sys.stdout.write(unicode(output + u'\n').encode(cfg.encoding, 'replace'))  # Python 2
sys.stdout.write(output)
# sys.stderr.write(unicode(error + u'\n').encode(cfg.encoding, 'replace'))   # Python 2
sys.stderr.write(output)
return output, error

1 Ответ

0 голосов
/ 06 августа 2020

Вы можете попробовать использовать пакет pymatlab .

Здесь - несколько примеров того, как его использовать.

...