使用python运行bash_profile命令

使用python运行bash_profile命令,python,bash,subprocess,Python,Bash,Subprocess,在我的bash终端中,我可以运行以下命令: $SCHRODINGER/run volume_calc.py -imae type.mae 这是正确的 然后我尝试在python脚本中运行相同的命令;我尝试了以下方法: import subprocess subprocess.run(['$SCHRODINGER/run', 'volume_calc.py', '-imae', 'type.mae']) 这会引发错误: FileNotFoundError: [Errno 2] No such f

在我的bash终端中,我可以运行以下命令:

$SCHRODINGER/run volume_calc.py -imae type.mae
这是正确的

然后我尝试在python脚本中运行相同的命令;我尝试了以下方法:

import subprocess
subprocess.run(['$SCHRODINGER/run', 'volume_calc.py', '-imae', 'type.mae'])
这会引发错误:

FileNotFoundError: [Errno 2] No such file or directory: '$SCHRODINGER/run'

我不知道问题是什么,因为我可以很好地运行基本的bash命令。感谢您的帮助。

除非将
shell
参数传递给
subprocess.run
调用,否则默认情况下不会使用subprocess进行环境变量扩展。这将把参数传递给shell(例如,
bash
),shell将处理所需的扩展和任何其他类似shell的功能

以下是必要的代码更改:

subprocess.run(['$SCHRODINGER/run', 'volume_calc.py', '-imae', 'type.mae'], shell=True)
请注意,值得通读python文档中给出的有关如何使用它的详细信息