如何在 Matlab 的 virtualenv 中执行 Python 代码

How can I execute Python code in a virtualenv from Matlab

我正在创建一个用于研究的 Matlab 工具箱,我需要执行 Matlab 代码以及 Python 代码。

我想允许用户从 Matlab 执行 Python 代码。问题是,如果我立即这样做,我将不得不在 Python 的环境中安装所有东西,我想使用 virtualenv 来避免这种情况。问题是我不知道如何告诉 Matlab 使用创建的虚拟环境。

您可以在从 MATLAB

调用 python 之前修改 MATLAB 中的 PATH 环境变量
% Modify the system PATH so it finds the python executable in your venv first
setenv('PATH', ['/path/to/my/venv/bin', pathsep, getenv('PATH')])

% Call your python script
system('python myscript.py')

或者更好的方法是指定 python 二进制

的完整路径
system('/path/to/my/venv/bin/python myscript.py')

正如@tales-pádua 在评论中所建议的那样,您可以使用 pyversion 命令将路径设置为您正在使用的 Python 可执行文件(在尝试从 Matlab 调用 python 之前)。

这可以通过使用 matlabrc.m 文件自动完成:

python = '.local/bin/python';
if exist(python, 'file')
    pyversion(python)
end