使用子流程从python运行终端命令

使用子流程从python运行终端命令,python,django,python-3.x,django-views,subprocess,Python,Django,Python 3.x,Django Views,Subprocess,我试图从django运行一个终端命令,但出现了一个错误 下面是我要运行的命令: kubectl apply -f <(istioctl kube-inject -f FILE_PATH) kubectl apply-f问题在于,无论shell python调用什么,都不支持通过进行进程替换。您能在终端中运行这个命令吗?@Sraw-yup!它从terminal.keep os.path.join(path)在变量中工作,并将该变量附加到subprocess.call中。这是一个shell错

我试图从django运行一个终端命令,但出现了一个错误

下面是我要运行的命令:

kubectl apply -f <(istioctl kube-inject -f FILE_PATH)

kubectl apply-f问题在于,无论shell python调用什么,都不支持通过
进行进程替换。您能在终端中运行这个命令吗?@Sraw-yup!它从terminal.keep os.path.join(path)在变量中工作,并将该变量附加到subprocess.call中。这是一个shell错误,而不是python错误。顺便说一句,当您在错误中运行命令时会发生什么?
/bin/sh:-c:第0行:
如何安排此命令
kubectl apply-f它返回
/bin/bash:istioctl:command not found错误:没有传递到apply 1的对象听起来istioctl不在路径中。尝试用此命令的完整路径替换istioctl。路径不是全局路径。在Django环境中可能会有所不同。甚至bash在执行命令之前也可能会对其进行处理。您可以通过将要执行的命令替换为
echo$PATH
进行检查。
nodesvc = subprocess.call('kubectl apply -f <(istioctl kube-inject -f ' + os.path.join(path) + '/nodeService.yaml)',
                                      shell=True)
/bin/sh: -c: line 0: syntax error near unexpected token `('
/bin/sh: -c: line 0: `kubectl apply -f <(istioctl kube-inject -f /var/folders/g2/8fzl8mjj5xxfqdfvrl7v3q_40000gn/T/tmpstfcq3es/nodeService.yaml)'
subprocess.call(["/bin/bash", "-c", "wc -l <(sort something.txt)"])
subprocess.call(["/bin/bash", "-c", 'kubectl apply -f <(istioctl kube-inject -f ' + os.path.join(path) + '/nodeService.yaml)'])