python - (/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
解决方案
您的问题是 Matlab 运行的命令没有找到您的 python 3 解释器,我的猜测是它以 root 用户身份运行,因此 PATH 与您的用户中的不同。
基本上,您可以做的是为您想要的 Python 解释器指定完整的 PATH,在您的情况下,它是/anaconda3/bin/python3
PATH,但对于另一个用户,该 PATH 可能不同。
在任何情况下,您都可以whereis python3
在终端中运行以找出用户 Python 解释器的完整 PATH,并在 Matlab 中使用完整的 PATH。
推荐阅读
- javascript - 为什么按钮在点击时改变位置?
- python - 如何在 mysql 命令中使用 python 函数 input()?
- javascript - ASP.NET 无法从第二个模式输入中获取值
- swiftui - SwiftUI 视图中的 onReceive 导致无限循环
- search - 智能搜索索引问题 – Kentico 9
- javascript - 如何调用特定的cookie是JS
- apache - apache2.4中通配符子域的virtualhost通配符子域
- wordpress - 购物车和结帐页面的背景颜色
- python - SQLAlchemys .first() 和 .fetchone() 之间的区别
- c++ - 从 YouTube 复制的 OpenGL 着色器中的语法错误