Python 无法调用C++;使用subprocess.Popen方法的二进制文件 >subprocess.Popen(“ADK-j 50-ordNode jira1disa2-a'-noControl-sourceDir/some/path/given/'>logFile.log 2>&1&”)

Python 无法调用C++;使用subprocess.Popen方法的二进制文件 >subprocess.Popen(“ADK-j 50-ordNode jira1disa2-a'-noControl-sourceDir/some/path/given/'>logFile.log 2>&1&”),python,python-3.x,unix,subprocess,popen,Python,Python 3.x,Unix,Subprocess,Popen,我写了与上面提到的几乎相同的查询。 ADK是一个C++二进制,还有一些参数作为选项,我试图通过服务器中的Python脚本运行它。< /P> 当我说这句话的时候: ADK-j 50-ordNode jira1disa2-a'-noControl-sourceDir/some/path/given/'>logFile.log 2>&1& 在一个.sh文件中,并使用Python运行该文件,我能够执行结果,但在直接调用时,我遇到了如下错误: 回溯(最近一次呼叫最后一次): 文件“test.py”,第

我写了与上面提到的几乎相同的查询。 <代码> ADK<代码>是一个C++二进制,还有一些参数作为选项,我试图通过服务器中的Python脚本运行它。< /P> 当我说这句话的时候:

ADK-j 50-ordNode jira1disa2-a'-noControl-sourceDir/some/path/given/'>logFile.log 2>&1& 在一个
.sh
文件中,并使用Python运行该文件,我能够执行结果,但在直接调用时,我遇到了如下错误:

回溯(最近一次呼叫最后一次):
文件“test.py”,第47行,在
检查时区()
check_时区中第40行的文件“test.py”
计数=子进程。检查输出(命令)
检查输出中的文件“/usr/lib/python3.6/subprocess.py”,第537行
进程=Popen(stdout=PIPE,*popenargs,**kwargs)
文件“/usr/lib/python3.6/subprocess.py”,第679行,在
文件“/usr/lib/python3.6/subprocess.py”,第1249行,在执行子进程中
引发子对象异常-
OSError:[Errno 2]没有这样的文件或目录
限制:

我不能使用shell=True

我也尝试过在一个包含所有in字符串的列表中给出它,但也失败了,在
subprocess.Popen
中,还有很多可能的方法。。。
请建议它的工作方式。

您需要传递一个列表,但您无法方便地使用那里的
进行输入/输出重定向(这仅适用于
shell=True
)。你将不得不使用Popen提供的工具来处理输入和输出。正如@blubberdiblub所说,主要问题不是你如何重定向。嗨,谢谢你的建议。我也试过使用列表。但这不起作用[“ADK”、“-j”、“50”、“-ordNode”、“jira1disa2”、“-a”、“-noControl-sourceDir/some/path/given/”、“>”、“logFile.log”、“2>&1”、“&”]这也无法运行并引发相同的错误。