【发布时间】:2019-09-17 15:12:01
【问题描述】:
我需要从 Python 脚本运行 MATLAB 脚本。我不关心它的输出,也不需要给它任何参数。
但是,MATLAB R2016B 的“引擎”不支持 Python 3.7(此时升级 Matlab 或降级 python 不是一个选项)
所以,我决定制作一个运行它的 shell 脚本:
#!matlab -nodisplay -nodesktop -r 'try; myMatlabScript; catch; end; quit'
现在我需要从 Python 运行一个 bash 脚本。为此,我做了:
import subprocess
subprocess.call("./mybashscript.sh")
(是的,python 脚本与 shell 脚本处于同一级别)
python 脚本不会直接抱怨。但是,我确实得到以下信息:
'.'未被识别为内部或外部命令、可运行程序或批处理文件。
这对我来说意味着由于 Windows 没有直接的 bash,它不知道如何处理这个 shell 脚本。我不确定如何处理。有什么方法可以告诉 Python 使用 MSYS 而不是 Windows 作为 shell?
因此 MATLAB 脚本似乎根本没有运行。
当我在 Linux 下尝试时(只是为了测试,出于性能原因我不能在这里运行它),我得到:
./mybashscript.sh: matlab: bad interpreter: 没有这样的文件或目录
这可能是因为我没有执行命令addpath(genpath('.'))吗?如果是这样,我不确定如何在 shell 脚本中执行此操作,我们将不胜感激。
或者其他更好的解决方案也很好。
【问题讨论】:
标签: python windows bash matlab msys