主要内容

进程外执行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

另请参阅