主要内容

进程的执行Python功能

请注意

调用Python有相关的开销®用功能。这种行为会影响性能。MathWorks建议在进程内调用Python函数,这是默认模式。

MATLAB®可以在单独的进程中运行Python脚本和函数。在单独的进程中运行Python可以:

  • 在Python代码中使用一些与MATLAB不兼容的第三方库。

  • 将MATLAB进程与Python代码中的崩溃隔离开来。

要跑出进程,调用pyenv函数与“ExecutionMode”参数设置为“OutOfProcess”.例如,假设您想要创建这个列表变量。

['星期一','星期二','星期三','星期四','星期五']

创建这个列表进程外,设置MATLAB执行模式为“OutOfProcess”.MATLAB显示关于当前Python环境的信息。

pyenv (“ExecutionMode”“OutOfProcess”
ans = PythonEnvironment with properties: "2.7"可执行:"C:\Python27\pythonw.exe" Library: "C:\windows\system32\ Python27 .dll" Home: "C:\Python27" Status: NotLoaded ExecutionMode: OutOfProcess .

创建变量。

py.list ({“周一”“星期二”“星期三”“星期四”“星期五”})
ans =没有属性的Python列表。['星期一','星期二','星期三','星期四','星期五']

MATLAB创建了一个名为MATLABPyHost

pyenv
ans = PythonEnvironment with properties: Version: "2.7"可执行:"C:\Python27\pythonw.exe" Library: "C:\windows\system32\ Python27 .dll" Home: "C:\Python27" Status: Loaded ExecutionMode: OutOfProcess ProcessID: "8196" ProcessName: "MATLABPyHost"

请注意

清除Python对象是异步的,这意味着在调用同步调用之后,Python对象可能会保留在Python中。例如,在下面的代码中,有可能myList2是之前创建的myList被摧毁。

myList = py.list;清晰的myListmyList2 = py.list;

限制

当您在进程外调用Python函数时,Python和MATLAB之间传递的变量大小被限制为2gb。这个限制适用于进程之间传递的数据和支持信息。金宝app

另请参阅