首页 > 解决方案 > (/bin/bash: python3: command not found) 在Matlab中通过系统命令运行python脚本时

问题描述

我有一个大型 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

标签: pythonpython-3.xmatlab

解决方案


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

基本上,您可以做的是为您想要的 Python 解释器指定完整的 PATH,在您的情况下,它是/anaconda3/bin/python3PATH,但对于另一个用户,该 PATH 可能不同。

在任何情况下,您都可以whereis python3在终端中运行以找出用户 Python 解释器的完整 PATH,并在 Matlab 中使用完整的 PATH。


推荐阅读