主要内容

进程的执行Python功能

请注意

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

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

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

  • 隔离MATLAB从Python代码的崩溃过程。

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

(周一,周二,周三,周四,周五的)

创建这个列表进程,将MATLAB执行模式“OutOfProcess”。MATLAB显示你当前的Python环境信息。

pyenv (“ExecutionMode”,“OutOfProcess”)
ans = PythonEnvironment属性:版本:“2.7”可执行:“C: \ Python27 \ pythonw。exe”库:“C: \ windows \ system32系统\ python27。dll:“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:“C: \ Python27”状态:加载ExecutionMode: OutOfProcess ProcessID:“8196 MATLABPyHost“ProcessName:

请注意

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

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

限制

Python和MATLAB之间传递变量的大小是有限的,当你调用Python函数用2 GB。这一限制适用于数据+支持之间的信息传递过程。万博1manbetx

另请参阅