(/ bin / bash:python3:找不到命令)在Matlab中通过系统命令运行python脚本时

时间:2018-12-19 23:35:52

标签: python python-3.x matlab

我有一个大型的Matlab项目,由于xlsread和Mac OS的问题,我包括了Mac交换机。如果该开关打开,我希望Matlab通过这样的系统命令执行python脚本:

cmdStr = 'python3 osx_conversion.py'
if osxSwitch == 1
    [status,result] = system(cmdStr);
    if status ~= 0
        error('System could not run Python conversion file')
    end
else
...

这将返回结果:

/bin/bash: python3: command not found

现在,如果我改为使用“ python osx_conversion.py”,则出现的错误与使用python 3语法有关,因为我的mac上的python命令将调用python 2。 任何关于正在发生的事情的想法都会受到赞赏。

编辑:为澄清起见,如果我通过终端运行“ python3 osx_conversion.py”,它将运行顺利

编辑2:运行结果

echo $PATH

在终端中:

    /anaconda3/bin:/Library/Frameworks/Python.framework/Versions/3.6/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Applications/VMware Fusion.app/Contents/Public:/Library/TeX/texbin:/usr/local/go/bin:/usr/local/MacGPG2/bin:/opt/X11/bin:/opt/ImageMagick/bin:/Applications/Wireshark.app/Contents/MacOS:/usr/local/go/bin

1 个答案:

答案 0 :(得分:2)

您的问题是Matlab运行的命令找不到您的python 3解释器,我猜它是作为root用户运行的,因此PATH与您的用户中的PATH不同。

基本上,您可以为所需的Python解释器指定完整的PATH,在您的情况下为/anaconda3/bin/python3,但是对于其他用户而言,PATH可能会有所不同。

无论如何,您始终可以在终端中运行whereis python3来查找用户Python解释器的完整PATH,并在Matlab中使用完整的PATH。