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

时间:2016-09-16 18:30:22

标签: python matlab virtualenv

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

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

2 个答案:

答案 0 :(得分:6)

您可以在从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')

答案 1 :(得分:0)

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

可以使用matlabrc.m文件自动执行此操作:

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