我尝试在bash shell中设置一个带有* .sh文件的环境,然后用python子进程执行批处理文件。这是我的代码:
import subprocess
p = subprocess.Popen(". ./bin/testenv.sh", ["start", "-b", "cm.bat"], stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE, executable="/bin/bash")
p.communicate()
但这不起作用。我需要stdout和stderr。我在ubuntu工作。
据我所知,当我手动完成所有这些过程时,我会使用环境的内置函数源。似乎在子进程中导出并不容易。在popen constructor
下的子流程文档中,我读到了env
,但遗憾的是我不明白如何正确使用它,我甚至不确定这是否对我有帮助。
如何让我的问题解决? (或者还有其他可能来解决这个问题吗?)
谁能帮助我?
提前致谢!