主要内容

进程的执行Python功能

请注意

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

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

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

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

要在进程外运行,请调用pyenv函数与“ExecutionMode”参数设置为“OutOfProcess”.例如,假设您想创建这个列表Python环境中的变量。

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

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

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

创建变量。

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之间传递的变量的大小限制为2 GB。这个限制适用于在流程之间传递的数据和支持信息。万博1manbetx

另请参阅