进程外执行Python功能
请注意
与调用Python相关的开销®用功能。这种行为会影响性能。MathWorks建议在进程内调用Python函数,这是默认模式。
MATLAB®可以在单独的进程中运行Python脚本和函数。在单独的进程中运行Python可以:
在Python代码中使用一些与MATLAB不兼容的第三方库。
将MATLAB进程与Python代码中的崩溃隔离开来。
要运行进程外,请调用pyenv
函数与“ExecutionMode”
参数设置为“OutOfProcess”
.例如,假设您想要创建这个列表
变量在Python环境中。
['星期一','星期二','星期三','星期四','星期五']
为了创建这个列表
out- process,设置MATLAB的执行模式为“OutOfProcess”
.MATLAB显示有关当前Python环境的信息。
pyenv (“ExecutionMode”,“OutOfProcess”)
ans = PythonEnvironment属性:版本:“2.7”可执行:“C:\Python27\pythonw.exe”库:“C:\windows\system32\ Python27 .dll”Home:“C:\Python27”状态:NotLoaded ExecutionMode: OutOfProcess
创建变量。
py.list ({“周一”,“星期二”,“星期三”,“星期四”,“星期五”})
ans =没有属性的Python列表。['星期一','星期二','星期三','星期四','星期五']
MATLAB创建一个名为MATLABPyHost
.
pyenv
ans = PythonEnvironment与属性:版本:"2.7"可执行:"C:\Python27\pythonw.exe"库:"C:\windows\system32\ Python27 .dll" Home: "C:\Python27"状态:加载ExecutionMode: OutOfProcess ProcessID: "8196" ProcessName: "MATLABPyHost"
请注意
清除Python对象是异步的,这意味着在调用同步调用之后,Python对象可能仍然在Python中。例如,在下面的代码中,有可能myList2
之前创建的myList
被摧毁。
myList = py.list;清晰的myListmyList2 = py.list;
限制
当您在进程外调用Python函数时,Python和MATLAB之间传递的变量的大小限制为2 GB。此限制适用于在进程之间传递的数据和支持信息。万博1manbetx