python无法识别别名Linux命令(commands.getoutput)
我正在Ubuntu 12.4上工作,我已经安装了matlab。通常,为了从终端调用matlab,我必须输入“~/matlab/bin/matlab”。显然这有点烦人,所以我通过添加python无法识别别名Linux命令(commands.getoutput),python,linux,Python,Linux,我正在Ubuntu 12.4上工作,我已经安装了matlab。通常,为了从终端调用matlab,我必须输入“~/matlab/bin/matlab”。显然这有点烦人,所以我通过添加 alias matlab='sh ~/MATLAB/bin/matlab' 到巴什尔。现在一切都是金色的,在终端(bash)中键入“matlab”可以在任何目录下工作 当我试图从python脚本调用Matlab时,问题就出现了。有这样一句话: >>> commands.getoutput('mat
alias matlab='sh ~/MATLAB/bin/matlab'
到巴什尔。现在一切都是金色的,在终端(bash)中键入“matlab”可以在任何目录下工作
当我试图从python脚本调用Matlab时,问题就出现了。有这样一句话:
>>> commands.getoutput('matlab')
'sh: 1: matlab: not found'
似乎无法识别别名。
为了确保:
>>> commands.getoutput('~/MATLAB/bin/matlab')
就像一个符咒,而且
>>> commands.getoutput('echo $SHELL')
'/bin/bash'
确实验证python正在尝试在bash中执行cmd
知道这里发生了什么吗?为什么无法识别别名?如何/可以修复它
谢谢 bash仅在作为交互式shell启动时计算
~/.bashrc
。如果在/.bashrc
中有别名,希望bash在以非交互方式运行时进行计算,则可以尝试将Python脚本中的bash_ENV
环境变量设置为指向~/.bashrc
提供了有关交互式shell与非交互式shell以及如何使用
BASH-ENV
的更多详细信息。如果BASH是作为交互式shell启动的,则BASH仅对~/.bashrc
进行评估。如果在/.bashrc
中有别名,希望bash在以非交互方式运行时进行计算,则可以尝试将Python脚本中的bash_ENV
环境变量设置为指向~/.bashrc
提供了有关交互式shell与非交互式shell以及如何使用
BASH-ENV
的更多详细信息,将matlab
二进制路径添加到path
环境变量中
PATH=~/MATLAB/bin/:$PATH
export PATH
然后python
将找到matlab
:
>>> commands.getoutput('matlab')
我认为
命令
不知道shell当前的别名。但是,诸如PATH
之类的环境变量仍然存在 将matlab
二进制路径添加到path
环境变量中
PATH=~/MATLAB/bin/:$PATH
export PATH
然后python
将找到matlab
:
>>> commands.getoutput('matlab')
我认为
命令
不知道shell当前的别名。但是,诸如PATH
之类的环境变量仍然存在 命令
已弃用。考虑使用子过程()代替。快速问题——如果你把别名放在<代码> BasHyPrrase会发生什么?对于背景信息,请参阅添加。BasHyPrror没有帮助。我认为ubuntu在默认情况下不会出现这种情况。commands
已被弃用。考虑使用子过程()代替。快速问题——如果你把别名放在<代码> BasHyPrrase会发生什么?对于背景信息,请参阅添加。BasHyPrror没有帮助。我认为ubuntu在默认情况下不会出现这种情况。您必须使用“导出路径=…”否则python将无法获取路径值。更改路径可能会从~/MATLAB/bin
添加不必要的命令ln-s~/MATLAB/bin/MATLAB-MATLAB
在已经在PATH中的目录中可能更合适,谢谢你的回答。设置路径并导出(“导出路径=…”添加到.bashrc)解决了问题。谢谢!我忘记了导出关键字:)您必须使用“导出路径=…”否则python将无法获取路径值。更改路径可能会从~/MATLAB/bin
添加不必要的命令ln-s~/MATLAB/bin/MATLAB-MATLAB
在已经在PATH中的目录中可能更合适,谢谢你的回答。设置路径并导出(“导出路径=…”添加到.bashrc)解决了问题。谢谢!我忘记了导出关键字:)