从Matlab运行Python脚本失败,但从终端正常运行

2 投票
1 回答
512 浏览
提问于 2025-04-29 14:06

我有一个Python脚本,叫做script.py,我可以在终端里顺利运行它。在脚本中间,它用 os.system('unar file') 来解压一个文件。但是,当我试着从Matlab里运行这个脚本,使用 system('python script.py'),它确实能运行,但当执行到解压那一行时,就出现了“sh: unar: 找不到命令”的错误。

这怎么可能呢?难道Matlab的系统命令不应该和终端一样吗?希望能得到一些帮助。

暂无标签

1 个回答

2

在你的终端中,你的 Python 脚本可以使用你的 PATH 环境变量,这样它就知道 /usr/bin/unar 应用程序的位置。而在 Matlab 中,它就不知道这些信息了。因此,你需要在调用 os.system 时,提供应用程序和文件的完整路径。

另外,os.system 其实不太好用。建议使用 subprocess.Popen,这样可以更方便地处理输入和输出。

这里有一个使用 subprocess 的示例: https://gist.github.com/voodoonofx/8e5bcae8e0b0c5741148

撰写回答