我编写了一个很好的python脚本,它解析XML并添加一些复杂的逻辑,然后通过子进程模块与外部命令进行交互。
大多数subprocess.Popen调用完全按照预期执行,但最后一个调用只是拒绝执行。没有错误消息,它只是没有做它应该做的事情。我甚至将实际的CMD放入一个由调试语句包围的shell脚本中,然后执行shell脚本,而不是实际的CMD。
更令人愤怒的是,单独的.py文件中的相同代码行执行得很好。
我不知道为什么或如何做到这一点?
python代码生成一个文件并尝试使用选项
调用外部命令p = subprocess.Popen([CMD,'object','new_host','--file','/tmp/add.1234'], stdout=subprocess.PIPE, stderr=subprocess.PIPE)
r = p.communicate()
print r
这个逻辑在独立文件中工作,但不在较大的python脚本中(其中有其他工作的Popen调用)。
有人知道为什么会这样吗?
PS:我无法将python更新为更新版本