python - 使用 python 运行 bash_profile 命令
问题描述
在我的 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 完成环境变量扩展subprocess.run
。这会将您的参数传递给一个外壳(例如bash
),该外壳将处理所需的扩展和任何其他类似外壳的功能。
这是必要的代码更改:
subprocess.run(['$SCHRODINGER/run', 'volume_calc.py', '-imae', 'type.mae'], shell=True)
请注意,值得阅读python 文档中给出的使用它的安全注意事项。
推荐阅读
- java - 将 .pst 文件提取到 msg 但未获取 msg 文件的确切数量
- sql - 查询以列出与特定表关联的作业名称和步骤
- ruby-on-rails - Rails. Association of the same model with many parents
- scala - How to write integration tests depending on Druid?
- python - Function to translate input in one form to another
- swift - 定义布局以保存为图像 - Swift
- r - dplyr 在数据子集上
- node.js - how to connect to a server running on computer using computer's IP address?
- mysql - MySQL:SUM 函数应用于另一个查询选择的字段中包含的公式
- python - 从 pandas groupby 获取数据帧以写入镶木地板