不应该从文件夹中运行python子进程

时间:2015-04-22 19:25:11

标签: python subprocess

我正在尝试在我的mac中使用 C& C NLP库,它使用终端作为其接口。所以我很自然地试图从我的python中运行命令,但这是发生的事情:

candc:could not open model configuration file for reading:models/config  

结果不应该从同一目录调用candc,应该从二进制文件夹外部调用,比如“bin / candc”。 我怎样才能做到这一点?

这是我的代码:

cmd="candc/bin/candc --models models"  
subprocess.check_output('{} | tee /dev/stderr'.format( cmd ), shell=True)

2 个答案:

答案 0 :(得分:0)

使用cmd中的完整路径:

cmd = "/home/your-username/python-programs/cnc/candc/bin/canc --models models

无论完整的道路是什么。您可以在pwd目录中使用(如果您使用的是Linux)candc来查找它是什么。

答案 1 :(得分:0)

cwd参数传递给您想要的工作目录。

例如,如果要从bin/candc目录中将其作为candc运行:

import os
cmd="bin/candc --models models"  
subprocess.check_output('{} | tee /dev/stderr'.format( cmd ), shell=True, cwd=os.path.abspath('candc'))

(我不确定你是否真的需要os.path.abspath。无论是否使用它都要进行测试。)