繁体   English   中英

使用python运行bash_profile命令

[英]Running bash_profile commands with python

在我的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调用,否则默认情况下不会使用子进程来完成环境变量的扩展。 这会将您的参数传递给外壳程序(例如bash ),该外壳程序将处理所需的扩展以及任何其他类似外壳程序的功能。

这是必要的代码更改:

subprocess.run(['$SCHRODINGER/run', 'volume_calc.py', '-imae', 'type.mae'], shell=True)

请注意,值得阅读使用python文档中给出的安全注意事项

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM