Matlab Compiler Python error: невозможно запустить скомпилированный код Python и исполняемый файл в одном коде - PullRequest
0 голосов
/ 14 сентября 2018

Я задал этот вопрос на MathWorks, но никто не ответил (или не увидел его), поэтому я решил опубликовать здесь. К сожалению.

У меня есть некоторые функции в Matlab, которые я хочу использовать в кодах Python, и затем я хочу закрыть их для пользователей (коммерческих). Здесь 2 варианта: использовать библиотечный компилятор для компиляции функции matlab как пакета python или я могу создать исполняемый файл с помощью компилятора Aplication и вызывать его с помощью os.system.

Сначала я создал пакет Python и запустил его в коде Python с успехом в соответствии с этим руководством. Но у меня есть функции, которые не работают в скомпилированном python, и я не знаю почему (см. этот вопрос). Я решил скомпилировать некоторые специфические функции и вызвать system.os (что намного медленнее). Теперь я хочу вызвать функции пакета Python и скомпилированные функции в одном и том же коде в Matlab.

Проблема в том, когда я делаю

self.matlab_handle = matlab_function.initialize()

похоже, что он блокирует ресурс времени выполнения Matlab. поэтому, когда я вызываю скомпилированный код, он выдает ошибку:

Не удалось найти версию MCR 9.0.1. Попытка загрузки mclmcrrt7_15.dll Пожалуйста, установите правильную версию MCR

так что мне нужно позвонить завершить, прежде чем освободить ресурсы, верно?

self.matlab_handle.terminate()

НЕПРАВИЛЬНО. Я не знаю почему, но это не освобождает ресурс. Я провел несколько хороших часов в нем, и я не мог понять, почему.

Может кто-нибудь помочь мне? Как я могу запустить пакет Python Matlab и скомпилированный код Matlab (исполняемый файл) в одном и том же коде Python. Или, если некоторые из вас могут ответить на мой другой вопрос, я был бы очень рад. Я использую Python 2.7 и Matlab 2016a. Или даже, если у вас есть другие идеи о том, как запустить код matlab в python быстрее, это помогло бы мне.

...